首页 > 解决方案 > AWS CDK 中 S3 存储桶策略中的白名单 IP 地址

问题描述

我正在尝试使用 AWS CDK 编写我的基础设施,而不是像以前那样使用控制台构建它。我正在编写我的 S3 存储桶策略,并且对如何提供条件感到困惑。我的目标是从按预期工作的 AWS 控制台重新创建此存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::**********/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "*********"
                }
            }
        }
    ]
}

我当前的存储桶策略的 aws cdk 代码如下所示:

const bucketPolicy = new iam.PolicyStatement({
      actions: ['s3:GetObject'],
      resources: [`${bucket.bucketArn}/*`],
      principals: [new iam.Anyone()],
      conditions: ...
    });

提前感谢您的帮助!

标签: amazon-web-servicesamazon-s3amazon-cloudformationaws-cdk

解决方案


我只是通过这样做解决了它:

const bucketPolicy = new iam.PolicyStatement({
    actions: ['s3:GetObject'],
    resources: [`${bucket.bucketArn}/*`],
    principals: [new iam.Anyone()],
    conditions: { 
        'IpAddress': {
            'aws:SourceIp': '***.***.***.***'
         }
      }
    });

推荐阅读