取得為 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 動作是用於更新現有的授權方。您可以分別覆寫 Resource 值的前兩個萬用字元 (*),將政策限制在特定區域或特定的 API。

Condition 子句用在這裡以限制指定使用者集區的 Allowed 許可。當有 Condition 子句時,拒絕任何不符合條件的存取使用者集區。當許可沒有 Condition 子句時,允許存取任何使用者集區。

設定 Condition 子句有下列選項:

  • 您可以設定 ArnLikeArnEquals 條件式表達式,只允許在指定的使用者集區中建立或更新 COGNITO_USER_POOLS 授權方。

  • 您可以設定 ArnNotLikeArnNotEquals 條件式表達式,允許在表達式中未指定的任何使用者集區中建立或更新 COGNITO_USER_POOLS 授權方。

  • 您可以省略 Condition 子句,允許在任何區域之任何 AWS 帳戶的任何使用者集區中建立或更新 COGNITO_USER_POOLS 授權方。

如需 Amazon Resource Name (ARN) 條件表達式的詳細資訊,請參閱 Amazon Resource Name 條件運算子。如範例所示,apigateway:CognitoUserPoolProviderArnCOGNITO_USER_POOLS 使用者集區的 ARN 清單,可以或無法和 COGNITO_USER_POOLS 類型的 API Gateway authorizer 一起使用。