我尝试与 AWS Identity and Access Management (IAM) 用户一同执行 API 操作以将角色传递给 AWS 服务。API 操作失败,我收到了类似以下内容的错误: "You are not authorized to perform this operation.User: arn:aws:iam::123456789012:user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:iam::123456789012:role/ExampleRole because no identity-based policy allows the iam:PassRole action."
简短描述
某些 AWS 服务允许将现有的 IAM 角色传递给该服务,这样就无需创建新的服务角色。但是,必须具备相应权限,才能将 IAM 角色传递给 AWS 服务。
解决方法
要解决此问题,请更新 IAM 策略,允许 IAM 用户为 AWS 服务执行 iam:PassRole API 操作。
**注意:**只能使用 PassRole 权限将 IAM 角色传递给使用同一 AWS 账户的 AWS 服务,不能传递给另一个账户中的 AWS 服务。有关更多信息,请参阅 IAM 中的跨账户资源访问。
以下示例 IAM 策略允许 IAM 用户将名为 ExampleRole 的角色传递给 Amazon Elastic Compute Cloud (Amazon EC2) 服务:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::account-ID:role/ExampleRole",
"Condition": {
"StringEquals": {
"iam:PassedToService": "ec2.amazonaws.com"
}
}
}
]
}
**注意:**将 ExampleRole 替换为您的角色,将 account-ID 替换为您的账户 ID。
在 Resource 元素中添加特定资源的 ARN,以便限制用户将角色传递给其他用户的能力,并防止混淆代理问题。有关更多信息,请参阅向用户授予向 AWS 服务传递角色的权限。
相关信息
如何结合使用 PassRole 权限与 IAM 角色