【问题标题】:How to manage permissions of EC2 instance profile?如何管理 EC2 实例配置文件的权限?
【发布时间】:2018-04-18 17:50:43
【问题描述】:

在 EC2 上部署 java 应用程序时,我可以使用

new ProfileCredentialsProvider()

注入一些实例凭据。但会是哪个 IAM 用户?我如何管理该用户的权限?例如将他的权限限制在某些特定的 S3 存储桶中

【问题讨论】:

    标签: java amazon-web-services amazon-ec2 aws-sdk amazon-iam


    【解决方案1】:

    关于 EC2 实例配置文件,Mark B 是 100% 正确的。顺便说一句——Java ProfileCredentialsProvider 指的是 AWS 开发工具包和 AWS CLI 可用的凭证配置文件,而不是 EC2 实例配置文件。从其文档中:

    基于 AWS 配置文件的凭据提供程序。这 提供商从配置文件配置文件中提供 AWSCredentials 默认配置文件,或特定的命名配置文件。

    AWS 凭证 配置文件允许您共享多组 AWS 安全凭证 在 AWS SDK for Java 和 AWS CLI 等不同工具之间。

    这对于部署到 EC2 是不可取的,因为这意味着您必须将配置文件存储在 EC2 实例上。根据 Mark B 的回答,EC2 实例配置文件更适合将凭证传递给 EC2 上的应用程序。

    为了能够在不进一步更改代码的情况下检索其中任何一个,只需使用DefaultAWSCredentialsProviderChain(注意:renamed DefaultCredentialsProvider in AWS SDK for Java v2),它将通过多种凭据方案,直到它在您的系统上找到一个有效的方案。根据文档,它按以下顺序查找凭据:

    1. Java 系统属性 - aws.accessKeyId 和 aws.secretKey

    2. 环境变量 - AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY

    3. 所有 AWS 开发工具包和 AWS CLI 共享的默认位置 (~/.aws/credentials) 的凭证配置文件

    4. 如果设置了 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 环境变量,则通过 Amazon EC2 容器服务交付的凭证 并且安全管理员有权访问该变量。

    5. 通过 Amazon EC2 元数据服务交付的实例配置文件凭证

    这将允许您在本地开发环境中查找凭证配置文件,并在生产 EC2 环境中查找 EC2 实例配置文件。

    进一步阅读

    【讨论】:

      【解决方案2】:

      它不是 IAM 用户,而是 EC2 实例配置文件。首先,您必须在您的账户中创建实例配置文件,就像您必须创建 IAM 用户一样。通过将适当的 IAM 安全策略分配给实例配置文件,您可以像管理 IAM 用户的权利一样管理 EC2 实例配置文件的权限。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-29
        • 2016-10-01
        • 1970-01-01
        • 2021-11-21
        • 2016-05-31
        • 2018-12-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多