AWS cli:无权执行:sts:AssumeRole 对资源

iam*_*man 7 amazon-web-services amazon-iam aws-cli

我有一个 AWS 账户,我在其中承担了一个名为 A( role-A) 的角色,我从该角色role-B通过 Web 控制台创建了另一个名为 B( ) 的角色,并将管理员策略附加到该角色

这是cli配置

[default]
aws_access_key_id = <>
aws_secret_access_key = <>
region = eu-central-1

[role-B]
role_arn = arn:aws:iam::<id>:role/ics-role
mfa_serial = arn:aws:iam::<id>:mfa/<name>
external_id = <name>
source_profile = default
Run Code Online (Sandbox Code Playgroud)

role-B 我创建的 role-A

当我尝试获取角色详细信息时

aws --profile role-B sts get-caller-identity
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

调用 AssumeRole 操作时发生错误 (AccessDenied):用户:arn:aws:iam::<>:user/<> 无权执行:sts:AssumeRole 资源:arn:aws:iam::<>:角色/ics-角色

Ash*_*hex 6

您需要检查 iam 角色的信任关系策略文档以确认您的用户在其中。

此外,请确保 iam 用户具有允许他们担任该角色的明确权限。

信任关系应如下所示:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::1234567890:user/person",
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)