繁体   English   中英

AWS IAM 角色创建失败

[英]AWS IAM role creation is failing

我在账户 A 中创建了一个 DynamoDB 表,并在同一账户中创建了一个角色来对其执行一些操作。

这个角色将由部署在账户 B 中的 lambda function 承担。现在我只在账户 A 中使用上面的代码部署堆栈。账户 B 的堆栈和 lambda function 的 cdk 将在稍后部署。 这是部署在账户 A 中的堆栈的相关角色代码,如下所示:

 self._ddb_table = ddb.Table(
            self,
            id,
            .
            .
            .
            )

 ddb_lambda_role = iam.Role(self, "ddb_lambda_role",
                                          assumed_by=iam.ServicePrincipal("lambda.amazonaws.com"),
                                          role_name="ddb_lambda_role"
                                          
                                          )

        ddb_policy_stmt = iam.PolicyStatement(
            effect=iam.Effect.ALLOW,
            actions=[
                'dynamodb:Query',
                'dynamodb:GetItem',
                'dynamodb:GetRecords',
                'dynamodb:PutItem',
                'dynamodb:UpdateItem',
                'dynamodb:BatchGetItem',
            ],
            resources=[self._ddb_table.table_arn]
        )

        ddb_lambda_role.add_to_policy(ddb_policy_stmt)

这给出了一条错误消息: The following resource(s) failed to create: [ddblambdarole...].

cli 以及 web 控制台中没有提供更多信息。 您看到上面创建的角色有什么问题吗? 如果不是上面的方法,如何在当前账户A中创建一个跨账户角色,可以由另一个账户中的lambda function承担?

编辑

添加屏幕截图在此处输入图像描述

检查您的 CloudTrail 日志中是否有来自iam.amazonaws.com的事件,您会在那里找到失败的真正原因。

https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-log-file-examples.html#cloudtrail-log-file-examples-iam

你应该仔细检查你的角色能力。

由账户 B 中的 lambda 承担的账户 A 中的角色必须具有正确的可信实体,在这种情况下是 Lambda 的执行角色

B账户中Lambda的执行角色必须有AssumeRole策略

我想你们所有人都需要这里https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-assume-iam-role/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM