我尝试与 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.”
简短描述
某些 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。
有关更多信息,请参阅向用户授予向 AWS 服务传递角色的权限。
相关信息
如何结合使用 PassRole 权限与 IAM 角色