【发布时间】:2021-10-06 15:40:27
【问题描述】:
我有以下:
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 存储桶,我想向其中添加一个策略,以便其他 AWS 账户能够写入它。例如我喜欢添加这个策略:
{
"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}/*"
}
]
}
所以我尝试了:
accessLogsBucket.addToResourcePolicy(
new PolicyStatement({
effect: Effect.ALLOW,
actions: [
"s3:ReplicateObject",
"s3:ReplicateDelete"
],
principals: [new AnyPrincipal()],
resources: [
accessLogsBucket.arnForObjects("*")
]
})
)
我怎样才能做到这一点?
【问题讨论】:
标签: aws-cdk