如何管理EC2实例配置文件的权限



在EC2上部署java应用程序时,我只能使用

new ProfileCredentialsProvider()

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

Mark B对EC2实例配置文件的描述是100%正确的。除此之外,Java ProfileCredentialsProvider指的是AWS SDK和AWS CLI可用的凭据配置文件,而不是EC2实例配置文件。从文件来看:

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

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

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

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

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

  2. 环境变量-AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY

  3. 所有aws SDK和aws CLI 共享的默认位置的凭据配置文件(~/.aws/credentials)

  4. 如果设置了AWS_container_Credentials_RELATIVE_URI"环境变量,则通过Amazon EC2容器服务传递的凭据并且安全管理器具有访问该变量的权限。

  5. 通过AmazonEC2元数据服务提供的实例配置文件凭据

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

进一步阅读

  • AWS文档-使用实例配置文件
  • AWS文档-使用AWS凭据-请注意,此文档适用于AWS SDK for Java 2.0预览版

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

最新更新