Как передать 'any' в AWS CDK в политику корзины - PullRequest
1 голос
/ 05 января 2020

Я пытаюсь применить правило запрета удаления к любому принципалу с 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?

Ответы [ 2 ]

1 голос
/ 06 января 2020

должно быть new iam.AnyPrincipal()

примеры могут быть показаны здесь: https://codeburst.io/getting-hands-dirty-with-aws-cdk-async-api-c5e007468497

1 голос
/ 06 января 2020

Так что правильный синтаксис:

flowlogBucket.addToResourcePolicy(new iam.PolicyStatement({
      effect: iam.Effect.DENY,
      actions: ["s3:DeleteBucket"],
      principals: [ new iam.AnyPrincipal],
      resources:  ["arn:aws:s3:::" + flowlogBucket.bucketName]                          
        }));

, где iam - импорт iam = require ('@ aws -cdk / aws -iam');

...