將 Amazon S3 Access Grants 與 Amazon EMR on EKS 搭配使用 - Amazon EMR

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

將 Amazon S3 Access Grants 與 Amazon EMR on EKS 搭配使用

Amazon EMR on EKS 的 S3 Access Grants 概觀

在 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 管理存取權限以及《Amazon Simple Storage Service 使用者指南》中的使用 S3 Access Grants 管理存取權限

本頁說明在具有 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 on EKS 叢集以進行資料管理

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

  1. 為您的 Amazon EMR on EKS 叢集設定作業執行角色。包括執行 Spark 作業所需的必要 IAM 許可 s3:GetDataAccesss3: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 中定義的許可為何,使用者皆可能能夠存取資料

  2. 將作業提交至 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.5.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 搭配的考量事項

如需在將 Amazon S3 Access Grants 與 Amazon EMR on EKS 搭配使用時的重要支援、相容性和行為資訊,請參閱《Amazon EMR 管理指南》中的 S3 Access Grants 與 Amazon EMR on EKS 搭配的考量事項