

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

# 在 中管理許可 AWS Lambda
<a name="lambda-permissions"></a>

您可以使用 AWS Identity and Access Management (IAM) 來管理 中的許可 AWS Lambda。使用 Lambda 函數時，需要考慮兩個主要的許可類別：
+ Lambda 函數執行 API 動作和存取其他 AWS 資源所需的許可
+ 其他 AWS 使用者和實體存取 Lambda 函數所需的許可

Lambda 函數通常需要存取其他 AWS 資源，並對這些資源執行各種 API 操作。例如，您可能有一個 Lambda 函數，透過更新 Amazon DynamoDB 資料庫中的項目來回應事件。在這種情況下，函數需要存取資料庫的許可，以及在該資料庫中放置或更新項目的許可。

可以在稱為[執行角色](lambda-intro-execution-role.md)的特殊 IAM 角色中定義 Lambda 函數所需的許可。在此角色中，您可以連接政策，定義函數存取其他 AWS 資源所需的每個許可，以及從事件來源讀取。每個 Lambda 函數都必須擁有執行角色。您的執行角色必須至少能夠存取 Amazon CloudWatch，因為 Lambda 函數預設會記錄到 CloudWatch Logs。可以將 [`AWSLambdaBasicExecutionRole` 受管政策](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSLambdaBasicExecutionRole.html)連接至執行角色，以滿足此需求。

若要授予其他 AWS 帳戶、組織和服務存取 Lambda 資源的許可，您有幾個選項：
+ 您可以使用[身分型政策](access-control-identity-based.md)授予其他使用者對 Lambda 資源的存取權。以身分為基礎的政策可直接套用到使用者或與使用者相關連的群組和角色。
+ 您可以使用[以資源為基礎的政策](access-control-resource-based.md)，為其他帳戶提供存取 Lambda 資源的 AWS 服務 許可。當使用者嘗試存取 Lambda 資源時，Lambda 會同時考慮身分型政策 (針對使用者)，以及以資源型政策 (針對資源)。當 Amazon Simple Storage Service (Amazon S3) 之類的 AWS 服務呼叫您的 Lambda 函數時，Lambda 只會考慮以資源為基礎的政策。
+ 您可以使用[屬性型存取控制 (ABAC)](attribute-based-access-control.md) 模型來控制對 Lambda 函數的存取。透過 ABAC，您可以將標籤連接至 Lambda 函數、在特定 API 請求中傳遞標籤，或將其連接至提出請求的 IAM 主體。在 IAM 政策的條件元素中指定相同的標籤以控制函數存取。

在 中 AWS，最佳實務是僅授予執行任務所需的許可 ([最低權限許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege))。若要在 Lambda 中實作此功能，建議從 [AWS 受管政策](permissions-managed-policies.md)開始。您可以依原狀使用這些受管政策，或將其作為起點，撰寫限制程度更高的專屬政策。

為了協助您微調最低權限存取許可，Lambda 提供了一些其他條件，可供您包含在政策中。如需詳細資訊，請參閱[微調政策的資源和條件區段](lambda-api-permissions-ref.md)。

如需 IAM 的詳細資訊，請參閱《*[IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)*》。