如何使用 Java 的 AWS CDK 为账户创建 IAM 委托人?
How do I create an IAM Principal for an account using AWS CDK for Java?
我想创建一个如下所示的策略(这将允许跨帐户访问 SNS 主题):
{
"Statement":[{
"Effect":"Allow",
"Principal":{
"AWS":"111122223333"
},
"Action":"sns:Subscribe",
"Resource":"arn:aws:sns:us-east-2:123456789012:MyTopic"
}]
}
如何使用 Java CDK 创建它?我想我应该使用 AccountPrincipal
但我找不到一个看起来相关的 class 具有 public 构造函数。
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()
);
使用 AccountRootPrincipal
(实现 IPrincipal
),如下所示:
List.of(new AccountRootPrincipal())
我想创建一个如下所示的策略(这将允许跨帐户访问 SNS 主题):
{
"Statement":[{
"Effect":"Allow",
"Principal":{
"AWS":"111122223333"
},
"Action":"sns:Subscribe",
"Resource":"arn:aws:sns:us-east-2:123456789012:MyTopic"
}]
}
如何使用 Java CDK 创建它?我想我应该使用 AccountPrincipal
但我找不到一个看起来相关的 class 具有 public 构造函数。
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()
);
使用 AccountRootPrincipal
(实现 IPrincipal
),如下所示:
List.of(new AccountRootPrincipal())