DescribeStacks API コールを使用する為に必要なアクセス許可を教えてください。

所要時間1分
0

DescribeStacks API を呼び出したときに発生するアクセス拒否エラーを解決したいです。

簡単な説明

DescribeStacks AWS コマンドラインインターフェイス (AWS CLI) コマンドを実行すると、次のエラーが発生する場合があります。

「DescribeStacks 操作の呼び出し中にエラーが発生しました (AccessDenied): ユーザー arn:aws:sts::#AccountId:assumed-role/#RoleName/xxx には次を実行するためのアクセス許可がありません。リソース arn:aws:cloudformation:us-east-1:#AccountId:stack/*/* に対する ListStacks。cloudformation:ListStacks アクションを許可する ID ベースのポリシーがありません。」このエラーは、ロール "#RoleName" に "cloudformation:ListStacks" アクションが含まれていない場合に発生します。

注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

AWS マネジメントコンソールを使用すると、対応する「スタックをロードできませんでした」というエラーが表示されることがあります。これがアクセス許可に関連する問題であることを確認するには、AWS CloudTrail イベントを確認してから、ListStacks API コールをフィルター処理します。

解決方法

前述のエラーは、cloudformation:ListStacks アクションを実行するために必要なアクセス許可がロールにない場合に発生します。
注: スタック名が指定されていない場合、DescribeStacks のアクセス許可には ListStacks へのアクセス許可も必要です。

ListStacks へのアクセスを許可するようにアクセス許可ポリシーを更新する

AWS マネジメントコンソールで以下のステップを実行して、ロールのアクセスアクセス許可ポリシーを変更します。

  1. AWS マネジメントコンソールに管理者でログインします。

  2. 検索バーに IAM を入力します。[サービス] で、AWS マネジメントコンソールのサービスとして IAM を選択します。

  3. 左側のナビゲーションペインで、[ロール] タブを選択します。

  4. 検索バーにロール名を入力し、ロール名のハイパーリンク (青色で強調表示) を選択します。

  5. [アクセス許可] タブで、カスタマーマネージドポリシータイプまたはカスタマーインラインポリシーのいずれかに関する + アイコンを選択します。次に、[編集] ボタンを選択します。詳細については、「IAM ポリシーを作成する」を参照してください。

  6. #PolicyName ウェブページの変更アクセス許可を確認します。cloudformation:ListStacks が含まれていることを確認します。更新されたポリシーは次のようになります。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "VisualEditor",
          "Effect": "Allow",
          "Action": [
            "cloudformation:DescribeStacks",
            "cloudformation:ListStacks"
          ],
          "Resource": "*"
        }
      ]
    }
  7. [次へ] を選択します。次に、[変更を保存] ボタンを選択してポリシーの変更を実装します。

  8. aws cloudformation describe-stacks コマンドをテストして、正常に実行されることを確認します。

関連情報

DescribeStacks

describe-stacks

ListStacks

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ