[英]How to pass 'any' in AWS CDK to a bucket policy
我正在尝试使用 AWS CDK 将拒绝删除规则应用于任何委托人。 这是我的代码
flowlogBucket.addToResourcePolicy(new iam.PolicyStatement({
effect: iam.Effect.DENY,
actions: ["s3:DeleteBucket"],
principals: [new iam.AccountPrincipal('*')],
resources: ["arn:aws:s3:::" + flowlogBucket.bucketName]
}));
它不喜欢“*”,并且我收到错误无效的政策主体(服务:Amazon S3;状态代码:400;错误代码:MalformedPolicy;
我如何通过 CDK 中的任何主体?
应该是new iam.AnyPrincipal()
示例可以在这里显示: https : //codeburst.io/getting-hands-dirty-with-aws-cdk-async-api-c5e007468497
所以正确的语法:
flowlogBucket.addToResourcePolicy(new iam.PolicyStatement({
effect: iam.Effect.DENY,
actions: ["s3:DeleteBucket"],
principals: [ new iam.AnyPrincipal],
resources: ["arn:aws:s3:::" + flowlogBucket.bucketName]
}));
其中 iam 是 import iam = require('@aws-cdk/aws-iam');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.