1. ホーム
  2. amazon-web-services

[解決済み] AWS cli: not authorized to perform: sts:AssumeRole on resource.

2022-02-19 07:44:28

質問

私はAWSアカウントで、Aという名前のロールを引き受けています( role-A という名前のロールを作成し、そのロールからB( role-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

role-B から作成した role-A

ロールの詳細を取得しようとすると

aws --profile role-B sts get-caller-identity

次のようなエラーが発生します。

AssumeRole 操作の呼び出し時にエラーが発生しました(AccessDenied)。User: arn:aws:iam::<>:user/<> is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::<>:role/ics-role

解決方法は?

iamロールの信頼関係ポリシー文書を確認し、ユーザーがその中に入っていることを確認する必要があります。

さらに、そのiamユーザーがそのロールを引き受けることを許可する明示的な権限を持っていることを確認してください。

信頼関係は以下のようになるはずです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::1234567890:user/person",
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}