如何创建允许我的应用程序从 DynamoDB 进行查询的 AWS AppRunner 角色?

dav*_*ave 5 security amazon-web-services amazon-dynamodb amazon-iam amazon-app-runner

我有一个从 DynamoDB 读取并使用 AppRunner 部署的小型应用程序。我无法让 AppRunner 访问 Dynamo。我使用我认为需要的策略创建了一个 IAM 角色,但当我打开此 AppRunner 服务的安全配置时,该角色没有显示。

小智 14

我猜测您的角色缺乏 App Runner 的信任关系,例如,这意味着允许 App Runner 实例承担此角色的正确配置。

要解决这个问题,您需要转到您的角色,然后信任关系,然后进行编辑。下面是一个示例,该信任关系应如何选择作为实例角色:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "tasks.apprunner.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

您还可以查看AWS App Runner Workshop

他们使用此 CloudFormation 模板来创建 App Runner 实例角色。

  • 这就是答案。OP 指的是 App Runner 配置向导的安全部分。AWS 文档引用了“apprunner.amazonaws.com”服务主体名称,但“tasks.apprunner.amazonaws.com”服务主体名称是实际需要的名称,以便 IAM 角色在以下情况下显示在下拉列表中:通过 Web 控制台配置应用程序运行程序安全性。感谢您的回答。 (4认同)

kgi*_*kis 0

确保您阅读并理解文档。要访问 DynamoDb,您需要创建适当的策略并将其附加到服务的实例角色。

实例角色是一个可选角色,App Runner 使用它来提供对应用程序代码调用的 AWS 服务操作的权限。在创建 App Runner 服务之前,请使用 IAM 创建具有应用程序代码所需权限的服务角色。然后,您可以在 CreateService API 中或在使用 App Runner 控制台创建服务时将此角色传递给 App Runner。

CreateService API 记录在此处。您需要找到角色的 ARN 并将其提供给 InstanceRoleArn 参数。