如何限制 IAM 用户承担具有特定名称的跨账户角色
How can restrict an IAM user to assume Cross Account roles with a specific name
我可以申请哪个条件来限制 IAM 仅承担具有特定名称的角色?
该用户在多个 AWS 账户上有信任关系,这些账户都包含一个角色名称 "MyRole"。所以我想要一个条件:
Assumed RoleARN ~= arn:aws:iam::[0-9]*:role/MyRole
谢谢
要让您的 IAM 用户在多个账户中担任特定名称的角色,white-list 明确所有必需的角色 ARN。这是安全的方法。
"Resource": [
"arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole"
]
这是完整的政策:(AWS-ACCOUNT-ID 是没有连字符的 12 位数字)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole"
]
}
]
}
但是,查看您尝试使用通配符代替帐户 ID 的尝试,我想强调以下是可能的,但会使您的公司面临安全风险。它违反了 principle of least privilege.
在任何 AWS 账户中承担任何角色的权限(不安全)
"Resource": [
"arn:aws:iam::*"
]
在任何 AWS 账户中承担 'MyRole' 的访问权限(不安全)
"Resource": [
"arn:aws:iam::*:role/MyRole"
]
通过此通配符访问,IAM 用户可以代表您的公司在任何 third-party AWS 账户中担任 'MyRole'(或任何角色)。
我可以申请哪个条件来限制 IAM 仅承担具有特定名称的角色?
该用户在多个 AWS 账户上有信任关系,这些账户都包含一个角色名称 "MyRole"。所以我想要一个条件:
Assumed RoleARN ~= arn:aws:iam::[0-9]*:role/MyRole
谢谢
要让您的 IAM 用户在多个账户中担任特定名称的角色,white-list 明确所有必需的角色 ARN。这是安全的方法。
"Resource": [
"arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole"
]
这是完整的政策:(AWS-ACCOUNT-ID 是没有连字符的 12 位数字)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::AWS-ACCOUNT-ID1:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID2:role/MyRole",
"arn:aws:iam::AWS-ACCOUNT-ID3:role/MyRole"
]
}
]
}
但是,查看您尝试使用通配符代替帐户 ID 的尝试,我想强调以下是可能的,但会使您的公司面临安全风险。它违反了 principle of least privilege.
在任何 AWS 账户中承担任何角色的权限(不安全)
"Resource": [
"arn:aws:iam::*"
]
在任何 AWS 账户中承担 'MyRole' 的访问权限(不安全)
"Resource": [
"arn:aws:iam::*:role/MyRole"
]
通过此通配符访问,IAM 用户可以代表您的公司在任何 third-party AWS 账户中担任 'MyRole'(或任何角色)。