Как передать any в AWS CDK в политику корзины

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


person Min    schedule 05.01.2020    source источник


Ответы (2)


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

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

person AWS PS    schedule 05.01.2020
comment
Спасибо. Я понял эту часть, как вы видите в моем ответе. Спасибо за ссылку. Кажется, хорошие примеры кода AWS - person Min; 06.01.2020
comment
конечно, с удовольствием, не забудьте проголосовать за ответ пожалуйста - person AWS PS; 06.01.2020
comment
ах извините только что сделал :) - person AWS PS; 06.01.2020

Итак, правильный синтаксис:

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');

person Min    schedule 05.01.2020