REST API 用の Amazon Cognito ユーザープールオーソライザーを作成するためのアクセス許可を取得する - Amazon API Gateway

REST API 用の Amazon Cognito ユーザープールオーソライザーを作成するためのアクセス許可を取得する

Amazon Cognito のユーザープールを使用してオーソライザーを作成するには、選択した Amazon Cognito ユーザープールでオーソライザーを作成または更新するための Allow アクセス許可が必要です。以下の IAM ポリシードキュメントに示しているのは、そのようなアクセス許可の例です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:POST" ], "Resource": "arn:aws:apigateway:*::/restapis/*/authorizers", "Condition": { "ArnLike": { "apigateway:CognitoUserPoolProviderArn": [ "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_aD06NQmjO", "arn:aws:cognito-idp:us-east-1:234567890123:userpool/us-east-1_xJ1MQtPEN" ] } } }, { "Effect": "Allow", "Action": [ "apigateway:PATCH" ], "Resource": "arn:aws:apigateway:*::/restapis/*/authorizers/*", "Condition": { "ArnLike": { "apigateway:CognitoUserPoolProviderArn": [ "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_aD06NQmjO", "arn:aws:cognito-idp:us-east-1:234567890123:userpool/us-east-1_xJ1MQtPEN" ] } } } ] }

ポリシーが、ユーザーが属している IAM グループ、または割り当てられている IAM ロールにアタッチされていることを確認します。

上記のポリシードキュメントでは、apigateway:POST アクションは新しいオーソライザーを作成するためのものであり、apigateway:PATCH アクションは既存のオーソライザーを更新するためのものです。最初の 2 つのワイルドカード (*) をそれぞれ Resource の値で上書きすることで、ポリシーを特定のリージョンまたは特定の API に制限できます。

ここで使用されている Condition 句は、Allowed アクセス権限を指定されたユーザープールに制限します。Condition 句がある場合、条件に一致しないユーザープールへのアクセスは拒否されます。アクセス権限に Condition 句がない場合、すべてのユーザープールへのアクセスが許可されます。

Condition 句の設定には、次のオプションがあります。

  • ArnLike または ArnEquals 条件式を設定して、指定されたユーザープールのみを使用する COGNITO_USER_POOLS オーソライザーの作成または更新を許可できます。

  • ArnNotLike または ArnNotEquals 条件式を設定して、式に指定されていないユーザープールを使用する COGNITO_USER_POOLS オーソライザーの作成または更新を許可できます。

  • 任意の AWS アカウントおよび任意のリージョンの任意のユーザープールを使用する COGNITO_USER_POOLS オーソライザーの作成または更新を許可するには、Condition 句を省略できます。

Amazon リソースネーム (ARN) の条件式の詳細については、Amazon リソースネームの条件演算子を参照してください。次の例に示すように、apigateway:CognitoUserPoolProviderArn は、COGNITO_USER_POOLS タイプの API Gateway オーソライザーで使用できる、または使用できない COGNITO_USER_POOLS ユーザープールの ARN のリストです。