首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws-cdk多账户存储桶策略

aws-cdk多账户存储桶策略
EN

Stack Overflow用户
提问于 2021-10-06 15:40:28
回答 1查看 45关注 0票数 0

我有以下几点:

代码语言:javascript
复制
    const accessLogsBucket: Bucket = new Bucket(this, 'LogsBucket', {
      bucketName: `logs-${account}-${region}`,
      versioned: true,
      encryption: BucketEncryption.S3_MANAGED,
      blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
      accessControl: BucketAccessControl.LOG_DELIVERY_WRITE,
      removalPolicy: RemovalPolicy.RETAIN,
    });

添加一个S3存储桶,我想在其中添加一个策略,以便其他亚马逊网络服务账户能够向其写入。例如,我喜欢添加此策略:

代码语言:javascript
复制
{
"Version": "2008-10-17",
"Id": "PolicyForCombinedBucket",
"Statement": [
    {
        "Sid": "Set permissions for objects",
        "Effect": "Allow",
        "Principal": {
            "AWS": ["{PayerAccountA}","{PayerAccountB}"]
        },
        "Action": [
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
        ],
        "Resource": "arn:aws:s3:::{BucketName}/*"
    }
]
}

所以我试着:

代码语言:javascript
复制
    accessLogsBucket.addToResourcePolicy(
      new PolicyStatement({
        effect: Effect.ALLOW,
        actions: [
          "s3:ReplicateObject",
          "s3:ReplicateDelete"
        ],
        principals: [new AnyPrincipal()],
        resources: [
          accessLogsBucket.arnForObjects("*")
        ]
      })
    )

我如何才能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2021-10-06 23:25:06

好吧,你已经很接近了。但我认为你有一些错误的行动,也许是政策的倒退。

跨账号访问S3存储桶请参考this link,您可以在CDK中复制这些策略(或类似策略)。另外,由于您设置了block公网访问权限,因此您的S3 bucket需要在一个私有网络中,该私有网络可以通过接入点和私有网络共享的方式交叉访问另一个账户中的私有网络。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69468714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档