Как создать принципал IAM для учетной записи, используя AWS CDK для Java? - PullRequest
0 голосов
/ 10 апреля 2020

Я хочу создать политику, которая выглядит следующим образом (которая разрешит кросс-аккаунт доступ к SNS topi c):

{
  "Statement":[{
    "Effect":"Allow",
    "Principal":{
      "AWS":"111122223333"
    },
    "Action":"sns:Subscribe",
    "Resource":"arn:aws:sns:us-east-2:123456789012:MyTopic"
  }]
}

Как мне создать это с помощью Java CDK? Я думаю, что я должен использовать AccountPrincipal, но я не могу найти класс, который кажется уместным, с конструктором publi c.

myTopic.addToResourcePolicy(
    PolicyStatement.Builder
        .create()
        .actions(List.of("sns:Subscribe"))
        .effect(Effect.ALLOW)
        .resources(List.of("arn:aws:sns:us-east-2:123456789012:MyTopic"))
        .principals(List.of(  ...how do I create a principal here?... ))
        .build()
);

1 Ответ

0 голосов
/ 10 апреля 2020

Используйте AccountRootPrincipal (который реализует IPrincipal), как показано ниже:

List.of(new AccountRootPrincipal())
...