EMR Serverless에서 Amazon S3 Access Grants 사용 - Amazon EMR

EMR Serverless에서 Amazon S3 Access Grants 사용

EMR Serverless에 대한 S3 Access Grants 개요

Amazon EMR 릴리스 6.15.0 이상을 사용하면 Amazon S3 Access Grants에서 EMR Serverless의 Amazon S3 데이터에 대한 액세스를 강화하기 위해 사용 가능한 확장 가능한 액세스 제어 솔루션이 제공됩니다. S3 데이터에 대한 권한 구성이 복잡하거나 대규모인 경우 Access Grants를 사용하여 사용자, 역할 및 애플리케이션을 위한 S3 데이터 권한을 확장할 수 있습니다.

S3 Access Grants를 사용하여 Amazon S3 데이터에 대한 액세스를 EMR Serverless 애플리케이션에 액세스할 수 있는 자격 증명에 연결된 런타임 역할 또는 IAM 역할에 의해 부여된 권한 이상으로 강화합니다.

자세한 내용은 Amazon EMR 관리 가이드Amazon EMR을 위한 S3 Access Grants를 사용한 액세스 관리Amazon Simple Storage Service 사용 설명서S3 Access Grants를 사용한 액세스 관리를 참조하세요.

이 섹션에서는 Amazon S3의 데이터에 대한 액세스를 제공하기 위해 S3 Access Grants를 사용하는 EMR Serverless 애플리케이션을 시작하는 방법을 설명합니다. 기타 Amazon EMR 배포를 이용하여 S3 Access Grants을 사용하는 단계를 확인하려면 다음 설명서를 참조하세요.

데이터 관리를 위해 S3 Access Grants를 사용하여 Amazon EMR Serverless 애플리케이션 시작

EMR Serverless에서 S3 Access Grants를 활성화하고 Spark 애플리케이션을 시작할 수 있습니다. 애플리케이션에서 S3 데이터에 대한 요청이 발생할 경우 Amazon S3에서는 특정 버킷, 접두사 또는 객체로 범위가 지정된 임시 보안 인증을 제공합니다.

  1. EMR Serverless 애플리케이션에 대한 작업 실행 역할을 설정합니다. Spark 작업을 실행하고 S3 Access Grants(s3:GetDataAccesss3:GetAccessGrantsInstanceForPrefix)를 실행하는 데 필요한 필수 IAM 권한을 포함합니다.

    { "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의 권한이 없더라도 역할에서 허용하는 데이터에 액세스할 수 있습니다.

  2. 다음 예제와 같이 Amazon EMR 릴리스 레이블이 6.15.0 이상이고 spark-defaults 분류를 포함하는 EMR Serverless 애플리케이션을 시작합니다. red text의 값을 사용 시나리오에 적합한 값으로 바꾸세요.

    aws emr-serverless start-job-run \ --application-id application-id \ --execution-role-arn job-role-arn \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py", "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket1/wordcount_output"], "sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1" } }' \ --configuration-overrides '{ "applicationConfiguration": [{ "classification": "spark-defaults", "properties": { "spark.hadoop.fs.s3.s3AccessGrants.enabled": "true", "spark.hadoop.fs.s3.s3AccessGrants.fallbackToIAM": "false" } }] }'

EMR Serverless에서의 S3 Access Grants 고려 사항

Amazon EMR Serverless에서 Amazon S3 Access Grants를 사용하는 경우의 중요 지원, 호환성 및 동작 정보를 확인하려면 Amazon EMR 관리 안내서Amazon EMR에서의 S3 Access Grants 고려 사항을 참조하세요.