假设A账号要控制B账号资源,但是B账号不想给A账号创建专用IAM用户,这是就可以用role来给A账号中的用户受临时权限。
具体方案为:
(1) 在B账号(被控制账号)中创建个角色,选择Role for Cross-Account Access,然后选择Provide access between AWS accounts you own,然后在Account ID里写上被授权账号,也就是A账号的AccountID
(2) 然后在B账号中给这个角色授权,这个跟给IAM用户授权方法一样
(3) 然后在A账号选择允许执行跨账号权限的组或者用户,然后授权给这些组或者用户,授权json如下:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Deny",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::AccounId-A:role/role-name"
}]
}
这个是给A账号中的用户或者组执行AssumeRole(成为某角色)的权限
(4) 然后A账号中的用户,就可以通过AssumeRole的API来执行B账号中这个角色的权限
(5) A中的用户控制A中的资源,还是原来的方法,A中的用户控制B中的资源时,需要先使用AssumeRole API获取角色的临时权限
给个python调用的例子
#!/usr/bin/env python import boto from boto.sts import STSConnection from boto.s3.connection import S3Connection## 需要提

本文介绍了如何在AWS中实现跨账号授权访问。通过在B账号创建角色,并设定A账号为授权方,A账号的用户可以使用AssumeRole API获取在B账号的临时权限,从而控制B账号的资源。该过程涉及了角色创建、权限设置和API调用的详细步骤。
最低0.47元/天 解锁文章
1273

被折叠的 条评论
为什么被折叠?



