Amazon EMR on EKS での Amazon S3 Access Grants の使用
Amazon EMR on EKS での S3 Access Grants の概要
Amazon EMR リリース 6.15.0 以降では、Amazon S3 Access Grants によってスケーラブルなアクセスコントロールソリューションが提供され、これを使用して EKS 上の Amazon EMR から Amazon S3 データへのアクセスを強化できます。S3 データのアクセス許可設定が複雑または大規模な場合は、Access Grants を使用して、ユーザー、ロール、アプリケーションの S3 データ権限をスケーリングできます。
S3 Access Grants を使用すると、Amazon S3 データへのアクセスを、ランタイムロールや Amazon EMR on EKS クラスターへのアクセス権を持つアイデンティティにアタッチされている IAM ロールによって付与される権限を超えて、Amazon S3 データへのアクセスを強化できます。
詳細については、「Amazon EMR 管理ガイド」の「Amazon EMR の S3 アクセス許可によるアクセスの管理」および「Amazon Simple Storage Service ユーザーガイド」の「S3 アクセス許可によるアクセスの管理」を参照してください。
このページでは、S3 Access Grants 統合による EKS 上の Amazon EMR で Spark ジョブを実行するための要件について説明します。EKS 上の Amazon EMR を使用する場合、S3 Access Grants では、ジョブの実行ロールに IAM ポリシーステートメントを追加し、StartJobRun
API のオーバーライド設定を追加する必要があります。他の Amazon EMR デプロイで S3 Access Grants を設定する手順については、以下のドキュメントを参照してください。
データ管理用 S3 Access Grants を使用した Amazon EMR on EKS クラスターの起動
EKS 上の Amazon EMR で S3 Access Grants を有効にし、Spark ジョブを起動することができます。アプリケーションが S3 データをリクエストすると、Amazon S3 は特定のバケット、プレフィックス、またはオブジェクトを対象とする一時的な認証情報を提供します。
-
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" ] }注記
ジョブ実行用に S3 に直接アクセスするための追加の権限を持つ IAM ロールを指定すると、S3 Access Grants で定義した権限に関係なく、ユーザーはデータにアクセスできる可能性があります。
-
次の例のように、Amazon EMR リリースラベルが 6.15 以上で、
emrfs-site
分類が設定された Amazon EMR on EKS クラスターにジョブを送信します。
の値を使用シナリオに適した値に置き換えます。red text
{ "name": "
myjob
", "virtualClusterId": "123456
", "executionRoleArn": "iam_role_name_for_job_execution
", "releaseLabel": "emr-7.3.0-latest
", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "entryPoint_location
", "entryPointArguments": ["argument1
", "argument2
"], "sparkSubmitParameters": "--classmain_class
" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "emrfs-site", "properties": { "fs.s3.s3AccessGrants.enabled": "true", "fs.s3.s3AccessGrants.fallbackToIAM": "false" } } ], } }
Amazon EMR on EKS での S3 Access Grants の考慮事項
EKS 上の Amazon EMR で Amazon S3 Access Grants を使用する際の重要なサポート、互換性、および動作情報については、「Amazon EMR 管理ガイド」の「Amazon EMR での S3 Access Grants の考慮事項」を参照してください。