使用 CDK 创建跨账户 IAM Lambda 角色

cyb*_*bat 5 amazon-web-services aws-cdk

在我的场景中,我有 2 个帐户(11111111、22222222)需要调用第三个帐户中的 lambda:33333333。第三个帐户中的 lambda 将从前 2 个帐户中的 lambda 调用。

第三个帐户中的 lambda 是动态创建的,但我需要给它们一个我希望使用 CDK 创建的角色(我将使用第三个帐户信用来执行此操作 - 这里没有跨帐户的东西)。

我按照此处的说明进行操作- 使用 STS 调用 lambda 似乎很简单。我不完全清楚的是如何定义 cdk 中的第三个帐户角色。

这是我的堆栈:


export class ModuleIAMStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props)

    const lambdaModuleRole = new Role(this, 'moduleRole', {
      roleName: 'moduleRole',
      assumedBy: new AccountPrincipal({ accountId: '111111111' }),
      managedPolicies: [ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSLambdaBasicExecutionRole')] // My lambdas in 3X... will not need to access any resources so this should be enough to execute
    })
  }
}

Run Code Online (Sandbox Code Playgroud)

我就不清楚了assumedBy。是否AccountPrincipal正确输入?如果可以,我该如何输入 22222222 帐户?

Ale*_*ons 6

AccountPrincipal将生成这样的主体:arn:aws:iam::123456789012:root。这足以允许整个帐户。

至于 CDK - 你已经快到了:

assumedBy: new iam.CompositePrincipal(
    new iam.AccountPrincipal('111111111'),
    new iam.AccountPrincipal('22222222')
),
Run Code Online (Sandbox Code Playgroud)

  • @Judi你可能应该问一个新问题而不是添加评论。 (2认同)