

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 利用 Verified Permissions 根據身分的屬性控制存取權
<a name="apigateway-lambda-authorizer-verified-permissions"></a>

使用 Amazon Verified Permissions 控制對 API Gateway API 的存取。當您搭配 Verified Permissions 使用 API Gateway 時，Verified Permissions 會建立 Lambda 授權方，該授權方會使用精細的授權決策來控制對 API 的存取。Verified Permissions 會根據政策存放區結構描述和政策，使用 Cedar 政策語言來授權呼叫者，以定義應用程式使用者的精細許可權。如需詳細資訊，請參閱《*Amazon Verified Permissions 使用者指南*》中的[使用連線 API 和身分提供者建立政策存放區](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/getting-started-api-policy-store.html)。

Verified Permissions 支援 Amazon Cognito 使用者集區或 OpenID Connect (OIDC) 身分提供者做為身分來源。Verified Permissions 假設主體先前已識別，並已驗證身分。Verified Permissions 僅支援區域和邊緣最佳化的 REST API。

## 使用 Verified Permissions 建立 Lambda 授權方
<a name="apigateway-lambda-authorizer-verified-permissions-attach"></a>

Verified Permissions 會建立 Lambda 授權方，用以判斷主體是否可在 API 上採取行動。您可以建立 Verified Permissions 用來執行其授權任務的 Cedar 政策。

以下是一個 Cedar 策略範例，允許 `developer` 群組基於 Amazon Cognito 使用者集區 `us-east-1_ABC1234` 對 API 的 `GET /users` 資源調用 API。Verified Permissions 會剖析呼叫者身分的承載字符來判定群組成員資格。

```
permit(
  principal in MyAPI::UserGroup::"us-east-1_ABC1234|developer",
  action in [ MyAPI::Action::"get /users" ],
  resource
  );
```

或者，Verified Permissions 可以將授權方附加至 API 的方法。在 API 的生產階段，建議您不要允許 Verified Permissions 為您附加授權方。

下列清單顯示如何設定 Verified Permissions，以附加或不附加 Lambda 授權方至 API 方法的方法請求。

**為您附加授權方 (AWS 管理主控台)**  
當您在 Verified Permissions 主控台選擇**建立政策存放區**時，請在**部署應用程式整合**頁面上選擇**現在**。

**請勿為您附加授權方 (AWS 管理主控台)**  
當您在 Verified Permissions 主控台選擇**建立政策存放區**時，請在**部署應用程式整合**頁面上選擇**稍後**。  
Verified Permissions 仍會為您建立 Lambda 授權方。Lambda 授權方以 `AVPAuthorizerLambda-` 開頭。如需有關如何在方法上附加授權方的詳細資訊，請參閱 [設定使用 Lambda 授權方 (主控台) 的方法](configure-api-gateway-lambda-authorization.md#configure-api-gateway-lambda-authorization-method-console)。

**為您附加授權方 (CloudFormation)**  
在 Verified Permissions 產生的 CloudFormation 範本中，在 `Conditions`區段中，將 `"Ref": "shouldAttachAuthorizer"`設定為 `true`。

**請勿為您附加授權方 (CloudFormation)**  
在 Verified Permissions 產生的 CloudFormation 範本中，在 `Conditions`區段中，將 `"Ref": "shouldAttachAuthorizer"`設定為 `false`。  
Verified Permissions 仍會為您建立 Lambda 授權方。Lambda 授權方以 `AVPAuthorizerLambda-` 開頭。如需有關如何在方法上附加授權方的詳細資訊，請參閱 [設定使用 Lambda 授權方的方法 (AWS CLI)](configure-api-gateway-lambda-authorization.md#configure-api-gateway-lambda-authorization-method-cli)。

## 使用 Verified Permissions 呼叫 Lambda 授權方
<a name="apigateway-lambda-authorizer-verified-permissions-call"></a>

您可以在 `Authorization` 標頭中提供身分或存取字符，以呼叫 Lambda 授權方。如需詳細資訊，請參閱[使用 API Gateway Lambda 授權方呼叫 API](call-api-with-api-gateway-lambda-authorization.md)。

API Gateway 會花 120 秒時間快取 Lambda 授權方傳回的政策。您可以在 API Gateway 主控台或使用 AWS CLI修改 TTL。