amazon-iam - 如何在不公开 API 凭据的情况下访问 DynamoDB 表

标签 amazon-iam aws-cloudformation

我们使用 CloudFormation 来部署我们的平台。是否有一种方法可以允许应用程序实例访问 DynamoDB 表而不暴露 API 凭据? 我读到了有关创建具有正确权限并使用实例配置文件的 IAM 角色的信息。我该如何实现这一目标?有人可以提供更多详细信息并解释什么是实例配置文件吗?

最佳答案

根据 AWS IAM 文档,实例配置文件为:

An instance profile is a container for an IAM role that you can use to pass role information to an EC2 instance when the instance starts.

因此,这是 AWS 提供的一项功能,因此 IAM 凭证不必存储在 EC2 实例中即可执行 AWS API。此外,此功能有助于仅向 EC2 实例授予所需 IAM 角色中指定的权限。此外,您可以在多个实例上使用相同的实例配置文件。这样,每当您更改凭证时,您就不必更新每个 EC2 实例上的凭证。因此,在启动 EC2 实例时,您可以指定实例配置文件。实例配置文件附加到 IAM 角色。 EC2 实例将获取 IAM 角色和所有 IAM 凭证。您只需在使用 API 之前设置 AWS 区域即可。

如何做到:
1) 使用以下命令创建 IAM 角色:create-role
2) 使用: create-instance-profile 创建实例配置文件。此步骤的输出将包含实例配置文件的 Arn。这需要在步骤 4 中使用。
3) 使用以下命令将角色添加到实例配置文件:add-role-to-instance-profile
4) 使用run-instances启动实例。指定 --iam-instance-profile 选项,如下所示:

--iam-instance-profile Arn=instanceArn

instanceArn 是从步骤 2 中获取的。

使用 AWS 控制台也可以实现同样的效果。下面的屏幕截图显示了如何在启动 EC2 实例期间指定角色:

EC2 Instance Launch using AWS Console, specifying IAM role

更多详情请参见Using Instance Profiles以及 AWS IAM User Guide 第 190 页的“在 Amazon EC2 中使用角色所需的权限”部分.

关于amazon-iam - 如何在不公开 API 凭据的情况下访问 DynamoDB 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35008338/

相关文章:

amazon-web-services - 如何从 CodePipeline 访问 SSM 参数

amazon-web-services - Cloudformation 堆栈未从服务目录更新

amazon-web-services - AWS 策略限制每个 IAM 用户的 S3 数据大小

amazon-web-services - 如何使用 postman 执行具有函数 URL 身份验证的 AWS Lambda 函数?

amazon-web-services - AWS信任策略已禁止字段Principal

amazon-web-services - Terraform:将 CloudFormation 模板写入磁盘

java - 从 Java 创建的新 AWS 策略传播多长时间?

amazon-web-services - AWS DynamoDB 限制对 IAM 中属性值的访问

amazon-web-services - 在不同账户上部署 AWS CodeStar 项目

amazon-web-services - 访问由代码管道执行的 Cloudformation 堆栈输出