

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

# 設定 Object Lambda 存取點的 IAM 政策
<a name="olap-policies"></a>

**注意**  
自 2025 年 11 月 7 日起，S3 Object Lambda 僅適用於目前正在使用該服務的現有客戶，以及選取 AWS 合作夥伴網路 (APN) 合作夥伴。對於類似於 S3 Object Lambda 的功能，請在此處進一步了解 - [Amazon S3 Object Lambda 可用性變更](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html)。

Amazon S3 存取點支援 AWS Identity and Access Management (IAM) 資源政策，可用於依資源、使用者或其他條件控制存取點的使用。您可以透過 Object Lambda 存取點上的選用資源政策或支援存取點的資源政策來控制存取。如需逐步範例說明，請參閱 [教學課程：使用 S3 Object Lambda 轉換應用程式的資料](tutorial-s3-object-lambda-uppercase.md) 和 [教學課程：使用 S3 Object Lambda 和 Amazon Comprehend 來偵測和編輯 PII 資料](tutorial-s3-object-lambda-redact-pii.md)。

下列四個資源必須具有使用 Object Lambda 存取點的許可：
+ IAM 身分，例如使用者或角色。如需 IAM 身分與最佳實務的詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 身分 (使用者、群組和角色)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)。
+ 連接至底層資料來源的標準存取點，例如 S3 儲存貯體或 Amazon FSx for OpenZFS 磁碟區。當您使用 Object Lambda 存取點時，此標準存取點稱為*支援存取點*。
+ Object Lambda 存取點。
+  AWS Lambda 函數。

**重要**  
儲存政策之前，請務必解決安全警告、錯誤、一般警告和建議 AWS Identity and Access Management Access Analyzer。IAM Access Analyzer 會比對 IAM [政策文法](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html)和[最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)來執行政策檢查，以驗證您的政策。這些檢查會產生問題清單並提供可行的建議，協助您撰寫具有功能性且符合安全最佳實務的政策。  
若要進一步了解如何使用 IAM Access Analyzer 驗證政策，請參閱《IAM 使用者指南》**中的 [IAM Access Analyzer 政策驗證](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。若要檢視 IAM Access Analyzer 傳回的警告、錯誤和建議清單，請參閱 [IAM Access Analyzer 政策檢查參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html)。

下列政策範例假設您有下列資源：
+ 含有下列 Amazon Resource Name (ARN) 的 Amazon S3 儲存貯體：

  `arn:aws:s3:::amzn-s3-demo-bucket1`
+ 具有下列 ARN 的此儲存貯體上的 Amazon S3 Standard 存取點：

  `arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point`
+ 具有下列 ARN 的 Object Lambda 存取點：

  `arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap`
+ 具有下列 ARN 的 AWS Lambda 函數：

  `arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction`

**注意**  
如果從您的帳戶使用 Lambda 函數，您必須在政策陳述式中包含特定函數版本。在下列範例 ARN 中，版本是以 *1* 表示：  
`arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1`  
Lambda 不支援將 IAM 政策新增至版本 `$LATEST`。如需 Lambda 函數版本的詳細資訊，請參閱《AWS Lambda 開發人員指南》**中的 [Lambda 函數版本](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)。

**Example - 將存取控制委派給標準存取點的儲存貯體政策**  
下列 S3 儲存貯體政策範例會將儲存貯體的存取控制委派給儲存貯體的標準存取點。此政策允許完整存取儲存貯體擁有者帳戶所擁有的所有存取點。因此，對此儲存貯體的所有存取皆由連接至其存取點的政策所控制。使用者只能透過存取點從儲存貯體讀取，這表示只能透過存取點叫用操作。如需詳細資訊，請參閱[將存取控制委派給存取點](access-points-policies.md#access-points-delegating-control)。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement" : [
    {
        "Effect": "Allow",
        "Principal" : { "AWS":"account-ARN"},
        "Action" : "*",
        "Resource" : [
            "arn:aws:s3:::amzn-s3-demo-bucket", 
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ],
        "Condition": {
            "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" }
        }
    }]
}
```

**Example – 授予使用者必要許可，使其可以使用 Object Lambda 存取點的 IAM 政策**  
下列 IAM 政策許可使用者使用 Lambda 函數、標準存取點和 Object Lambda 存取點。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowLambdaInvocation",
      "Action": [
        "lambda:InvokeFunction"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:lambda:us-east-1:111122223333:function:MyObjectLambdaFunction:1",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": [
            "s3-object-lambda.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "AllowStandardAccessPointAccess",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:CalledVia": [
            "s3-object-lambda.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "AllowObjectLambdaAccess",
      "Action": [
        "s3-object-lambda:Get*",
        "s3-object-lambda:List*"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3-object-lambda:us-east-1:111122223333:accesspoint/my-object-lambda-ap"
    }
  ]
}
```

## 啟用 Lambda 執行角色的許可
<a name="olap-execution-role"></a>

對 Object Lambda 存取點提出 `GET` 請求時，您的 Lambda 函數需要許可，才能將資料傳送至 S3 Object Lambda 存取點。此許可是透過對您的 Lambda 函數的執行角色啟用 `s3-object-lambda:WriteGetObjectResponse` 許可來提供的。您可建立新的執行角色，或使用現有的角色進行更新。

**注意**  
只有當您提出 `GET` 請求時，您的函數才需要 `s3-object-lambda:WriteGetObjectResponse` 許可。

**若要在 IAM 主控台中建立執行角色**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 選擇**建立角色**。

1. 在 **Common use cases** (一般使用案例) 下，選擇 **Lambda**。

1. 選擇**下一步**。

1. 在**新增許可**頁面上，搜尋 AWS 受管政策 [https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$serviceLevelSummary](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonS3ObjectLambdaExecutionRolePolicy$serviceLevelSummary)，然後選取政策名稱旁的核取方塊。

   此政策應包含 `s3-object-lambda:WriteGetObjectResponse` 動作。

1. 選擇**下一步**。

1. 在 **Name, review, and create** (命名、檢閱和建立) 頁面上，針對 **Role name** (角色名稱) 輸入 **s3-object-lambda-role**。

1. (選用) 新增此角色的描述和標籤。

1. 選擇建**立角色**。

1. 套用新建立的 **s3-object-lambda-role** 作為 Lambda 函數的執行角色。此動作可以在 Lambda 主控台中建立 Lambda 函數期間或之後完成。

如需執行角色的詳細資訊，請參閱《AWS Lambda 開發人員指南》**中的 [Lambda 執行角色](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)。

## 搭配 Object Lambda 存取點使用內容索引鍵
<a name="olap-keys"></a>

S3 Object Lambda 將評估內容索引鍵，例如，與連線相或請求簽署相關的 `s3-object-lambda:TlsVersion` 或 `s3-object-lambda:AuthType`。所有其他內容索引鍵，例如 `s3:prefix`，都會由 Amazon S3 評估。