如何使用 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())