

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

# 將 Amazon S3 Access Grants 與 Amazon EMR on EKS 搭配使用
<a name="access-grants"></a>

## Amazon EMR on EKS 的 S3 Access Grants 概觀
<a name="access-grants-overview"></a>

在 Amazon EMR 6.15.0 及更高版本中，Amazon S3 Access Grants 提供可擴展的存取控制解決方案，您可以使用該解決方案來增強從 Amazon EMR on EKS 對 Amazon S3 資料的存取權限。如果您的 S3 資料有複雜或大型的許可組態，您可以使用 Access Grants 來擴展使用者、角色和應用程式的 S3 資料許可。

使用 S3 Access Grants 可增強對 Amazon S3 資料的存取權限，超越由執行期角色或連接至有權存取 Amazon EMR on EKS 叢集之身分的 IAM 角色所授予的許可。

如需詳細資訊，請參閱《Amazon EMR 管理指南》**中的[使用適用於 Amazon EMR 的 S3 Access Grants 管理存取權限](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-access-grants.html)以及《Amazon Simple Storage Service 使用者指南》**中的[使用 S3 Access Grants 管理存取權限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html)。

本頁說明在具有 S3 Access Grants 整合的 Amazon EMR on EKS 中執行 Spark 作業的需求。使用 Amazon EMR on EKS 時，S3 Access Grants 需要在作業的執行角色中提供額外的 IAM 政策陳述式，以及 `StartJobRun` API 的額外覆寫組態。如需了解使用其他 Amazon EMR 部署設定 S3 Access Grants 的步驟，請參閱下列文件：
+ [將 S3 Access Grants 與 Amazon EMR 搭配使用](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-access-grants.html)
+ [將 S3 Access Grants 與 EMR Serverless 搭配使用](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/access-grants.html)

## 使用 S3 Access Grants 啟動 Amazon EMR on EKS 叢集以進行資料管理
<a name="access-grants-launch"></a>

您可以在 Amazon EMR on EKS 上啟用 S3 Access Grants，並啟動 Spark 作業。當您的應用程式提出 S3 資料請求時，Amazon S3 會提供僅限於特定儲存貯體、字首或物件的臨時憑證。

1. 為您的 Amazon EMR on EKS 叢集設定作業執行角色。包括執行 Spark 作業所需的必要 IAM 許可 `s3:GetDataAccess` 及 `s3:GetAccessGrantsInstanceForPrefix`：

   ```
   {
       "Effect": "Allow",
       "Action": [
       "s3:GetDataAccess",
       "s3:GetAccessGrantsInstanceForPrefix"
       ],
       "Resource": [     //LIST ALL INSTANCE ARNS THAT THE ROLE IS ALLOWED TO QUERY
            "arn:aws_partition:s3:Region:account-id1:access-grants/default",
            "arn:aws_partition:s3:Region:account-id2:access-grants/default"
       ]
   }
   ```
**注意**  
如果您指定用於作業執行的 IAM 角色具有直接存取 S3 的任何附加許可，則無論您在 S3 Access Grants 中定義的許可為何，使用者皆可能能夠存取資料

1. 將作業提交至 Amazon EMR on EKS 叢集 (Amazon EMR 發行標籤為 6.15 或更高版本以及 `emrfs-site` 分類)，如以下範例所示。使用適合您使用案例的值取代 `red text` 中的值。

   ```
   {
     "name": "myjob", 
     "virtualClusterId": "123456",  
     "executionRoleArn": "iam_role_name_for_job_execution", 
     "releaseLabel": "emr-7.12.0-latest", 
     "jobDriver": {
       "sparkSubmitJobDriver": {
         "entryPoint": "entryPoint_location",
         "entryPointArguments": ["argument1", "argument2"],  
          "sparkSubmitParameters": "--class main_class"
       }
     }, 
     "configurationOverrides": {
       "applicationConfiguration": [
         {
           "classification": "emrfs-site", 
           "properties": {
             "fs.s3.s3AccessGrants.enabled": "true",
             "fs.s3.s3AccessGrants.fallbackToIAM": "false"
            }
         }
       ], 
     }
   }
   ```

## S3 Access Grants 與 Amazon EMR on EKS 搭配的考量事項
<a name="access-grants-considerations"></a>

如需在將 Amazon S3 Access Grants 與 Amazon EMR on EKS 搭配使用時的重要支援、相容性和行為資訊，請參閱《Amazon EMR 管理指南》**中的 [S3 Access Grants 與 Amazon EMR on EKS 搭配的考量事項](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-access-grants-considerations.html)。