作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有两个 AWS 账户 - 比如说 A 和 B。
在账户 B 中,我定义了一个角色,允许从账户 A 访问另一个角色。我们称之为 Role-B
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::********:role/RoleA"
},
"Action": "sts:AssumeRole"
}]
}
在帐户 A 中,我定义了一个允许 root 用户担任角色的角色。让我们称之为角色-A
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::********:root"
},
"Action": "sts:AssumeRole"
}]
}
角色 A 附加了以下策略
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::****:role/RoleB",
"Effect": "Allow"
}]
}
作为帐户 A 中的用户,我担任角色 A。现在使用这个临时凭证,我想承担角色 B 并访问帐户 B 拥有的资源。我有以下代码
client = boto3.client('sts')
firewall_role_object = client.assume_role(
RoleArn=INTERMEDIARY_IAM_ROLE_ARN,
RoleSessionName=str("default"),
DurationSeconds=3600)
firewall_credentials = firewall_role_object['Credentials']
firewall_client = boto3.client(
'sts',
aws_access_key_id=firewall_credentials['AccessKeyId'],
aws_secret_access_key=firewall_credentials['SecretAccessKey'],
aws_session_token=firewall_credentials['SessionToken'], )
optimizely_role_object = firewall_client.assume_role(
RoleArn=CUSTOMER_IAM_ROLE_ARN,
RoleSessionName=str("default"),
DurationSeconds=3600)
print(optimizely_role_object['Credentials'])
此代码适用于我从客户那里获得的一组角色,但不适用于我在我有权访问的两个 AWS 账户之间定义的角色。
最佳答案
终于搞定了。上面的配置是正确的。政策中有拼写错误。
我将把这个问题留在这里,因为它可能对想要使用角色实现双跳身份验证的人有所帮助。
关于python - 如何从另一个 AWS 角色代入 AWS 角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652440/
在公式中替换函数符号(用另一个函数)的最佳方法是什么? Z3py的substitute似乎只适用于表达式,我现在要做的是尝试猜测可以应用该函数的所有可能的 consts/var 组合,然后用另一个函数
我是一名优秀的程序员,十分优秀!