【发布时间】:2020-05-22 01:07:28
【问题描述】:
我正在向 S3 存储桶添加资源策略文档。
当我创建一个新的 Bucket 时它工作正常:
const newbucket = new s3.Bucket(this, 'newBucket', {
websiteIndexDocument : 'index.html',
bucketName : 'NewBucket'
});
newbucket.addToResourcePolicy(new iam.PolicyStatement({
effect : iam.Effect.ALLOW,
actions: ['s3:*'],
resources: [newbucket.arnForObjects('*')],
principals: [new iam.AnyPrincipal],
}));
newbucket.addToResourcePolicy(new iam.PolicyStatement({
effect : iam.Effect.DENY,
actions: ['s3:*'],
resources: [newbucket.arnForObjects('*')],
principals: [new iam.AnyPrincipal],
conditions : {
'NotIpAddress' : {
'aws:SourceIp' : '***.***.***.***'
}
}
}));
但是如果我尝试获取一个已经存在的存储桶并添加策略文档,它就不起作用:
const existingbucket = Bucket.fromBucketAttributes(this, 'ImportedBucket',{
bucketName :'ExistingBucket'
})
existingbucket.addToResourcePolicy(new iam.PolicyStatement({
effect : iam.Effect.ALLOW,
actions: ['s3:*'],
resources: [existingbucket.arnForObjects('*')],
principals: [new iam.AnyPrincipal],
}));
不会添加资源策略文档。
此外,此代码删除现有的策略文档并将其设为空白。
有人对此问题有经验或解决方案吗?
【问题讨论】:
-
您的 CDK 堆栈是否有权修改现有存储桶?
-
我也遇到过类似的问题,请参考60905976解决方案
标签: javascript amazon-s3 aws-cdk