ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

【IAM】API Gateway Management APIのARN(sdktypes)がエラーに:原因とCLIでの解決手順

この記事を共有する

目次

内容

パーソル&サーバーワークスの相良です。 ポリシーエディターで以下のARNがInvalidエラーとなった為、その原因と対策をまとめました。

  "arn:aws:apigateway:ap-northeast-1::/sdktypes",

IAMポリシーエディター1.png IAMポリシーエディター2.png

原因

API Gateway Management API のARN形式ですが、IAMポリシーエディターは一般的に Execute API のARN形式を期待しています。

1. API Gateway Management API の場合

  arn:aws:apigateway:region::/resource-path

2. API Gateway Execute API の場合

  arn:aws:execute-api:region:account-id:api-id/stage/method/resource-path

注意事項

  • API Gateway Management APIのARNにはアカウントIDが含まれません
  • リージョンの後に::(コロン2つ)が続きます
  • /sdktypesのような特定のリソースパスを指定する場合は、正確な形式を使用する必要があります

解決方法

ポリシーエディターでエラーが発生する場合は、AWS CLIを使用してください

1.ポリシードキュメントをファイルに保存

CloudShellなどで以下を実行

  cat > api-gateway-policy.json << 'EOF'
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "apigateway:GET"
            ],
            "Resource": [
                "arn:aws:apigateway:ap-northeast-1::/sdktypes",
                "arn:aws:apigateway:ap-northeast-1::/restapis/*"
            ]
        }
    ]
}
EOF

2.ポリシーを作成

aws iam create-policy \
    --policy-name APIGatewaySDKTypesAccess \
    --policy-document file://api-gateway-policy.json

3.対象ロールにポリシーをアタッチ

aws iam attach-role-policy \
    --role-name {ロール名} \
    --policy-arn arn:aws:iam::{AWSアカウント}:policy/APIGatewaySDKTypesAccess

確認方法

CloudShellにて以下のコマンドを実行し確認する

aws iam list-attached-role-policies --role-name {IAMポリシー名}
aws iam list-role-policies --role-name {IAMポリシー名}

まとめ

ポリシーエディターのValidationチェックは、完璧ではないのでエディタ上でエラーが出た場合でもロールにアタッチできるか確認した方がよいです。

この記事は私が書きました

相良 優子

記事一覧

相良 優子

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。