在EC2上部署java app时,我可以使用
new ProfileCredentialsProvider()
注入一些实例凭据。但是IAM用户会是哪个?我该如何管理该用户的权限?例如,限制他对某个特定S3存储桶的权利
答案 0 :(得分:2)
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(注意:renamed DefaultCredentialsProvider in AWS SDK for Java v2),这将通过多种凭据方案,直到它在您的系统上找到有效的凭证方案。根据文档,它按此顺序查找凭据:
Java系统属性 - aws.accessKeyId和aws.secretKey
环境变量 - AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY
所有AWS开发工具包和AWS CLI共享的默认位置(〜/ .aws / credentials)的凭据配置文件
如果设置了AWS_CONTAINER_CREDENTIALS_RELATIVE_URI“环境变量,则通过Amazon EC2容器服务提供的凭据 并且安全管理员有权访问变量。
- 醇>
通过Amazon EC2元数据服务提供的实例配置文件凭据
这将允许您在本地开发环境中查找凭据配置文件,并在生产EC2环境中查找EC2实例配置文件。
答案 1 :(得分:1)
它不是IAM用户,而是EC2实例配置文件。首先,您必须在帐户中创建实例配置文件,就像您必须创建IAM用户一样。您可以通过将适当的IAM安全策略分配给实例配置文件来准确管理EC2实例配置文件的权限,以管理IAM用户的权限。