我是 aws 的新手,面临着 IAM 角色的问题。我正在做跨账户角色。比如说在账户 x 中,为账户 Y 创建了角色,以授予从 kinesis 流读取的权限。
我想连接到账户 Y 以使用 java 开发工具包本地从账户 X 获取流(我不会在账户 Y 上启动 EC2 实例(。那么他们有什么办法可以做到这一点吗?
我了解,如果我在账户 Y 上的 EC2 实例上运行应用程序,我将能够对其进行处理,但我不想使用 EC2 获取它。
AWS doc mentions in
https://docs.aws.amazon.com/cli/latest/topic/config-vars.html
# In ~/.aws/credentials:
[development]
aws_access_key_id=foo
aws_secret_access_key=bar
# In ~/.aws/config
[profile crossaccount]
role_arn=arn:aws:iam:...
source_profile=development
与此有关吗? 在这里,我认为跨账户是在账户 x 中创建的角色,用于授予对账户 y 的访问权限。
Which aws api should I call to fetch the streams?
提前谢谢。
AWS 中的跨账户访问具有您需要遵循的特定协议。当您在账户 X 中创建的 IAM 角色(该角色已被授予对账户 Y 中资源的访问权限(时,账户 Y 还需要授予该角色执行STS:AssumeRole
的权限。
完成这部分设置后,您应该很高兴。 在此处阅读更多相关信息
要使用适用于 Java 的 AWS 开发工具包,请为STS
服务创建服务对象并执行AssumeRole
调用。如果您为此提供正确的凭证,则其结果将是一对有权访问账户 Y 资源的有效凭证。
在此处阅读有关在 Java 中使用代入角色的更多信息。