- 公開日
- 最終更新日
【IAM】API Gateway Management APIのARN(sdktypes)がエラーに:原因とCLIでの解決手順
この記事を共有する
目次
内容
パーソル&サーバーワークスの相良です。 ポリシーエディターで以下のARNがInvalidエラーとなった為、その原因と対策をまとめました。
"arn:aws:apigateway:ap-northeast-1::/sdktypes",

原因
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チェックは、完璧ではないのでエディタ上でエラーが出た場合でもロールにアタッチできるか確認した方がよいです。
この記事は私が書きました
相良 優子
記事一覧