Lov*_*vey 9 amazon-sqs amazon-web-services amazon-iam
我的用例如下:
我需要使用JAVA SDK并借助IAM角色(不使用凭证提供程序实现)将一些数据推送到AWS SQS队列中。
有什么办法吗?
预先感谢您的帮助。
您只能在 EC2 实例、ECS 容器和 Lambda 函数上使用基于角色的身份验证。无法在本地或本地服务器上使用它们。
如果 DefaultAWSCredentialsProviderChain无法通过任何其他方法找到凭证,它将自动选择 EC2 实例角色。您还可以创建一个自定义AWSCredentialsProviderChain对象,只向它注入一个InstanceProfileCredentialsProvider 实例,就像这里
AWSCredentialsProviderChain myCustomChain = new AWSCredentialsProviderChain(new InstanceProfileCredentialsProvider());
Run Code Online (Sandbox Code Playgroud)
有关更多信息:https : //docs.aws.amazon.com/java-sdk/latest/developer-guide/java-dg-roles.html
已经有一段时间了,但是当前情况并非如此,现在可以与用户一起对Java SDK使用承担角色。您可以在.aws/credentials文件中配置凭据,如下所示:
[useraccount]
aws_access_key_id=<key>
aws_secret_access_key=<secret>
[somerole]
role_arn=<the ARN of the role you want to assume>
source_profile=useraccount
Run Code Online (Sandbox Code Playgroud)
然后,在启动时,设置环境变量: AWS_PROFILE=somerole
该SDK将使用定义的凭证useraccount来调用assumeRole与role_arn您所提供。当然,您需要确保拥有这些凭据的用户具有承担该角色的权限。
请注意,如果您没有在项目中包含完整的Java SDK(即,仅包含所需服务的库),则还需要aws-java-sdk-sts在类路径中包含该库才能起作用。
也可以通过编程方式使用来完成所有这些操作STSAssumeRoleSessionCredentialsProvider,但这将要求您直接配置所有服务,因此它可能不像仅适用于所有服务的配置文件方法那样方便。
| 归档时间: |
|
| 查看次数: |
6105 次 |
| 最近记录: |