기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SageMaker Unified Studio에서 신뢰할 수 있는 자격 증명 전파 사용
이 자습서에서는 신뢰할 수 있는 자격 증명 전파(TIP)를 사용하여 EMR Serverless 애플리케이션을 설정하는 방법을 보여줍니다. 그런 다음 Amazon SageMaker Unified Studio를 통해 자격 증명 기반 액세스 제어를 사용하여 샘플 테이블을 쿼리합니다. 이 설정을 사용하면 EMR Serverless는 자체 IAM Identity Center 자격 증명으로 각 사용자의 Spark 쿼리를 실행하고 Lake Formation은 AWS Glue Data Catalog 테이블에 대한 사용자당 권한을 적용합니다.
EMR Studio 대화형 워크로드에서 지원되지 않는 TIP
EMR Studio를 통한 대화형 워크로드는 EMR Serverless를 통한 신뢰할 수 있는 자격 증명 전파를 지원하지 않습니다. Amazon SageMaker Unified Studio를 TIP 지원 대화형 워크로드의 클라이언트용 애플리케이션으로 사용합니다.
비용
이 자습서에서는 EMR Serverless, AWS Lake Formation,, AWS IAM Identity Center, Amazon Simple Storage Service, Amazon SageMaker Unified Studio 등 요금이 발생할 수 있는 AWS 서비스를 사용합니다. 지속적인 요금을 방지하려면이 자습서의 끝에 있는 정리 단계를 따르세요. 요금 정보는 각 서비스의 요금 페이지를 참조하세요.
사전 조건 및 설정
신뢰할 수 있는 자격 증명 전파로 데이터를 쿼리하기 전에 다음 단계를 완료하여 필요한 모든 리소스를 설정합니다.
1단계: IAM Identity Center 설정
-
AWS 계정에서 IAM Identity Center를 활성화합니다. IAM Identity Center 인스턴스는 계정당 단일 리전에만 존재할 수 있습니다.
중요
IAM Identity Center가 배포된 리전을 기록해 둡니다. 모든 후속 리소스(Lake Formation, EMR Serverless, AWS Glue)는 동일한 리전에서 생성해야 합니다. 예를 들어 IAM Identity Center가 us-west-2에 있는 경우 모든 리소스는 us-west-2에도 있어야 합니다.
-
수동으로 또는 외부 ID 제공업체(예: Okta 또는 Microsoft Entra ID)에서 동기화하여 사용자 및 그룹을 IAM Identity Center에 프로비저닝합니다.
-
IAM Identity Center 인스턴스 ARN을 기록해 둡니다. 후속 단계에서 필요합니다. IAM Identity Center 콘솔의 설정에서 찾습니다.
프로그래밍 방식으로 인스턴스를 찾으려면 다음을 실행합니다.
aws sso-admin list-instances --regionyour-region출력 예시:
{ "Instances": [ { "InstanceArn": "arn:aws:sso:::instance/ssoins-1234567890abcdef", "IdentityStoreId": "d-1234567890", "OwnerAccountId": "123456789012", "Status": "ACTIVE" } ] }
2단계: IAM Identity Center를 사용하여 Lake Formation 구성
-
Lake Formation 콘솔 사용
-
데이터 레이크 관리자를 설정합니다.
중요
이러한 명령을 실행하는 데 사용하는 IAM 역할 또는 사용자가 Lake Formation에서 Data Lake 관리자로 추가되었는지 확인합니다. 그렇지 않으면 데이터베이스 또는 테이블을 생성할 때 "Insufficient Lake Formation permission(s)" 오류가 발생합니다. 역할을 관리자로 추가하려면:
aws lakeformation put-data-lake-settings \ --data-lake-settings '{ "DataLakeAdmins": [ {"DataLakePrincipalIdentifier": "arn:aws:iam::account-id:role/your-role"} ], "CreateDatabaseDefaultPermissions": [], "CreateTableDefaultPermissions": [], "Parameters": {"CROSS_ACCOUNT_VERSION": "3", "SET_CONTEXT": "TRUE"} }' -
1단계에서 기록한 인스턴스 ARN을 사용하여 Lake Formation용 IAM Identity Center 통합을 생성합니다.
aws lakeformation create-lake-formation-identity-center-configuration \ --catalog-idaccount-id\ --instance-arn "arn:aws:sso:::instance/ssoins-instance-id" -
Lake Formation 위치 등록을 위한 IAM 역할을 생성합니다. 신뢰할 수 있는 자격 증명 전파에 서비스 연결 역할을 사용하지 마십시오. 자세한 내용은 IAM Identity Center를 사용하여 AWS Lake Formation 설정을 참조하세요.
신뢰 정책:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }sts:SetContext가 필요합니다.
신뢰 정책에는 신뢰할 수
sts:SetContext있는 자격 증명 전파에 필요한가 포함되어야 합니다. 기본 마법사에서 생성한 IAM 역할은 서비스 연결 역할이며를 포함하지 않습니다sts:SetContext. 이전에 서비스 연결 역할로 위치를 등록한 경우를 포함하는 사용자 지정 역할로 위치를 다시 등록해야 합니다sts:SetContext.권한 정책(Amazon S3 데이터 위치에 대한 액세스 권한 부여):
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationDataAccessPermissionsForS3", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::your-data-bucket/*" ] }, { "Sid": "LakeFormationDataAccessPermissionsForS3ListBucket", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-data-bucket" ] } ] }역할을 생성하고 정책을 연결합니다.
aws iam create-role \ --role-name LFLocationRegistrationRole \ --assume-role-policy-document file://lf-trust-policy.json \ --description "Lake Formation location registration role with sts:SetContext for TIP" aws iam put-role-policy \ --role-name LFLocationRegistrationRole \ --policy-name LFDataAccessPolicy \ --policy-document file://lf-permissions-policy.json -
생성한 역할을 사용하여 Lake Formation에 Amazon S3 데이터 위치를 등록합니다.
aws lakeformation register-resource \ --resource-arn "arn:aws:s3:::your-data-bucket" \ --role-arn "arn:aws:iam::account-id:role/LFLocationRegistrationRole" -
AWS Glue 데이터 카탈로그에서 샘플 데이터를 가리키는 데이터베이스와 테이블을 생성합니다.
-
IAM Identity Center 사용자 또는 그룹에 데이터베이스와 테이블 모두에 대한 권한을 부여합니다.
중요
테이블의 SELECT 및 DESCRIBE 외에도 데이터베이스에 DESCRIBE를 부여해야 합니다. 데이터베이스 수준 권한이 없으면 자격 증명 기반 액세스를 사용할 때 데이터베이스가 SHOW DATABASES 결과에 표시되지 않습니다.
콘솔 사용:
Lake Formation 콘솔에서 데이터 레이크 권한 > 부여를 선택합니다.
보안 주체에서 IAM Identity Center 사용자 및 그룹을 선택하고 사용자 또는 그룹을 선택합니다.
명명된 데이터 카탈로그 리소스에서 데이터베이스를 선택합니다.
데이터베이스 권한에서 설명을 선택합니다.
권한 부여를 선택합니다.
1~5단계를 반복합니다. 이번에는 테이블을 선택하고 테이블 권한에서 선택 및 설명을 부여합니다.
사용 AWS CLI:
중요
Lake Formation 권한 부여에서 IAM Identity Center 사용자의 보안 주체 식별자 형식은 입니다
arn:aws:identitystore:::user/<UserId>. 트리플 콜론(:::)을 기록해 둡니다. 리전 또는 계정이 지정되지 않았습니다. Identity Store에서 UserId를 가져옵니다.# List users to get their UserIds aws identitystore list-users --identity-store-ididentity-store-id--regionyour-region# Grant DESCRIBE on the database aws lakeformation grant-permissions \ --principal '{"DataLakePrincipalIdentifier": "arn:aws:identitystore:::user/UserId"}' \ --permissions '["DESCRIBE"]' \ --resource '{"Database": {"DatabaseName": "tip_tutorial_db", "CatalogId": "account-id"}}' # Grant SELECT and DESCRIBE on the table aws lakeformation grant-permissions \ --principal '{"DataLakePrincipalIdentifier": "arn:aws:identitystore:::user/UserId"}' \ --permissions '["SELECT","DESCRIBE"]' \ --resource '{"Table": {"DatabaseName": "tip_tutorial_db", "Name": "employees", "CatalogId": "account-id"}}'
3단계: TIP 지원 EMR Serverless 애플리케이션 생성
IAM 역할에 애플리케이션을 생성하는 데 필요한 IAM Identity Center 권한이 있는지 확인합니다.
"sso:DescribeInstance", "sso:CreateApplication", "sso:DeleteApplication", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationGrant", "sso:PutApplicationAccessScope"
신뢰할 수 있는 자격 증명 전파, Apache Livy 엔드포인트 활성화 및 메타스토어로 구성된 AWS Glue 데이터 카탈로그를 사용하여 애플리케이션을 생성합니다.
aws emr-serverless create-application \ --release-label emr-7.8.0 \ --type "SPARK" \ --identity-center-configuration '{"identityCenterInstanceArn": "arn:aws:sso:::instance/ssoins-instance-id"}' \ --interactive-configuration '{"livyEndpointEnabled":true}' \ --runtime-configuration '[{"classification": "spark-defaults", "properties": {"spark.sql.catalogImplementation": "hive", "spark.hadoop.hive.metastore.client.factory.class": "com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory"}}]'
중요
AWS CLI 버전 요구 사항: --identity-center-configuration, --interactive-configuration및 --runtime-configuration 플래그에는 AWS CLI v2.15 이상이 필요합니다. “알 수 없는 옵션” 오류가 발생하는 경우를 업그레이드 AWS CLI 하거나 Python boto3(v1.35+)를 대안으로 사용합니다.
import boto3 session = boto3.Session(profile_name='your-profile', region_name='your-region') client = session.client('emr-serverless') response = client.create_application( name='tip-tutorial-app', releaseLabel='emr-7.8.0', type='SPARK', identityCenterConfiguration={ 'identityCenterInstanceArn': 'arn:aws:sso:::instance/ssoins-instance-id' }, interactiveConfiguration={ 'livyEndpointEnabled': True }, runtimeConfiguration=[ { 'classification': 'spark-defaults', 'properties': { 'spark.sql.catalogImplementation': 'hive', 'spark.hadoop.hive.metastore.client.factory.class': 'com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory' } } ] ) print(response['applicationId'])
Glue Data Catalog 메타스토어 구성
spark.sql.catalogImplementation 및 AWS Glue 메타스토어 팩토리 클래스를 runtimeConfiguration 설정하면 Spark 세션이 AWS Glue 데이터 카탈로그의 모든 테이블 유형(CSV, Parquet, ORC, Iceberg)에 액세스할 수 있습니다. 이 구성이 없으면 Iceberg 테이블만 표시될 수 있습니다.
TIP에는 Apache Livy 엔드포인트가 필요합니다.
신뢰할 수 있는 자격 증명 전파에는가 필요합니다--interactive-configuration '{"livyEndpointEnabled":true}'. TIP는 Apache Livy 엔드포인트에 대해서만 활성화됩니다.
필요한 IAM Identity Center 권한이 없는 경우 --identity-center-configuration 파라미터 없이 애플리케이션을 생성하고 IAM Identity Center 관리자에게 update-application API를 사용하여 나중에 TIP를 활성화하도록 요청합니다.
aws emr-serverless update-application \ --application-idapplication-id\ --identity-center-configuration '{"identityCenterInstanceArn": "arn:aws:sso:::instance/ssoins-instance-id"}'
4단계: 작업 실행 역할 구성
EMR Serverless가 사용자의 자격 증명으로 자격 증명을 향상sts:SetContext할 수 있도록 하려면 작업 실행 역할의 신뢰 정책에가 포함되어야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:SetContext"] } ] }
역할을 생성합니다.
aws iam create-role \ --role-name emr-serverless-tip-job-role \ --assume-role-policy-document file://trust-policy.json \ --description "EMR Serverless job execution role with TIP support"
작업이 액세스할 다운스트림 서비스에 대한 권한을 연결합니다. 역할에는 Lake Formation, AWS Glue, Amazon S3 및 Amazon CloudWatch Logs 권한이 필요합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFormationAndGlueAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions" ], "Resource": "*" }, { "Sid": "S3DataAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::your-data-bucket", "arn:aws:s3:::your-data-bucket/*" ] }, { "Sid": "CloudWatchLogsAccess", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:us-east-1:111122223333:*" } ] }
Lake Formation 권한 외에도 S3 권한이 필요합니다.
Lake Formation 및 Glue 권한 외에도 데이터 버킷에 대한 Amazon S3 권한(s3:GetObject, AWS s3:PutObject, s3:ListBucket)이 필요합니다. Spark 스크래치 및 셔플 데이터에 권한이 s3:PutObject 필요합니다. Amazon S3 권한이 없으면 기본 데이터 파일을 읽거나 임시 데이터를 쓸 때 액세스 거부 오류와 함께 Spark 작업이 실패할 수 있습니다.
CloudWatch Logs 권한이 필요합니다.
Spark 드라이버 및 실행기 로그 전송에는 Amazon CloudWatch Logs 권한이 필요합니다. 그렇지 않으면 Spark 세션이 시작되지 않을 수 있습니다.
역할에 정책을 연결합니다.
aws iam put-role-policy \ --role-name emr-serverless-tip-job-role \ --policy-name tip-lakeformation-access \ --policy-document file://permissions-policy.json
작업 실행 역할에 Lake Formation 권한을 부여합니다.
작업 실행 역할에는 데이터베이스 및 테이블에 대한 Lake Formation 권한도 필요합니다. 이는 IAM Identity Center 사용자에게 부여된 권한 부여에 추가됩니다.
# Grant DESCRIBE on the database to the job role aws lakeformation grant-permissions \ --principal '{"DataLakePrincipalIdentifier": "arn:aws:iam::account-id:role/emr-serverless-tip-job-role"}' \ --permissions '["DESCRIBE"]' \ --resource '{"Database": {"DatabaseName": "tip_tutorial_db", "CatalogId": "account-id"}}' # Grant SELECT and DESCRIBE on the table to the job role aws lakeformation grant-permissions \ --principal '{"DataLakePrincipalIdentifier": "arn:aws:iam::account-id:role/emr-serverless-tip-job-role"}' \ --permissions '["SELECT","DESCRIBE"]' \ --resource '{"Table": {"DatabaseName": "tip_tutorial_db", "Name": "employees", "CatalogId": "account-id"}}'
추가 다운스트림 서비스 구성은 EMR Serverless에서 Lake Formation 사용 및 EMR Serverless에서 Amazon S3 Access Grants 사용을 참조하세요.
Amazon SageMaker Unified Studio를 통해 신뢰할 수 있는 자격 증명 전파로 데이터 쿼리
설정을 완료한 후 Amazon SageMaker Unified Studio 프로젝트에서 TIP 지원 EMR Serverless 애플리케이션을 컴퓨팅으로 사용하여 데이터를 쿼리할 수 있습니다. EMR Serverless는 자체 IAM Identity Center 자격 증명으로 각 사용자의 쿼리를 실행하고 Lake Formation은 사용자당 권한을 적용합니다.
사전 조건
TIP 지원 EMR Serverless 애플리케이션(위의 3단계에서 완료됨).
IAM Identity Center 인증으로 구성된 Amazon SageMaker Unified Studio 도메인입니다.
대상 데이터베이스 및 테이블의 IAM Identity Center 사용자 또는 그룹에 부여된 Lake Formation 권한(위의 2단계에서 완료됨).
5단계: TIP가 활성화된 Amazon SageMaker Unified Studio 프로젝트 생성
IAM Identity Center 자격 증명을 사용하여 Amazon SageMaker Unified Studio에 로그인합니다.
새 프로젝트를 생성하거나 기존 프로젝트를 엽니다.
프로젝트 설정에서 프로파일이 블루프린트 파라미터
true에서 로enableTrustedIdentityPropagationPermissions설정되어 있는지 확인합니다.
6단계: EMR Serverless 애플리케이션을 컴퓨팅으로 추가
Amazon SageMaker Unified Studio 프로젝트 컴퓨팅 구성은 현재 콘솔을 통해 기존 EMR Serverless 애플리케이션을 추가하는 기능을 지원하지 않습니다. AWS CLI 를 사용하여 연결을 생성합니다.
aws datazone create-connection \ --domain-identifierdomain-id\ --name "my-emr-serverless-connection" \ --environment-identifierenvironment-id\ --props '{ "sparkEmrProperties": { "computeArn": "arn:aws:emr-serverless:region:account-id:/applications/application-id", "runtimeRole": "arn:aws:iam::account-id:role/emr-serverless-tip-job-role" } }'
다음 값을 교체합니다.
: Amazon SageMaker Unified Studio 도메인 식별자입니다.domain-id: 프로젝트의 환경 식별자입니다(도구 환경 사용).environment-id: 3단계의 EMR Serverless 애플리케이션 ID입니다.application-id: 4단계의 작업 실행 역할입니다.emr-serverless-tip-job-role
중요
create-connection API를 사용하려면 호출자가 DataZone 프로젝트의 멤버여야 합니다. 를 받은 경우 연결을 생성하기 전에 IAM 역할을 프로젝트 기여자로 AccessDeniedException추가합니다.
import boto3 session = boto3.Session(profile_name='your-profile', region_name='your-region') client = session.client('datazone') client.create_project_membership( domainIdentifier='domain-id', projectIdentifier='project-id', designation='PROJECT_CONTRIBUTOR', member={'userIdentifier': 'arn:aws:iam::account-id:role/your-role'} )
EMR Serverless 액세스를 위해 프로젝트의 DataZone 사용자 역할을 구성합니다.
프로젝트 환경의 DataZone 사용자 역할에는 EMR Serverless 애플리케이션과 상호 작용할 수 있는 권한이 있어야 합니다. 역할에 다음 인라인 정책을 추가합니다(역할 이름은 패턴를 따릅니다datazone_usr_role_<project-id>_<environment-id>).
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:ListApplications", "emr-serverless:AccessLivyEndpoints", "emr-serverless:StartJobRun", "emr-serverless:GetJobRun", "emr-serverless:ListJobRuns", "emr-serverless:CancelJobRun", "emr-serverless:GetDashboardForJobRun" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/emr-serverless-tip-job-role", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } } ] }
DataZone 사용자 역할에 Lake Formation 권한을 부여합니다.
# Grant DESCRIBE on the database aws lakeformation grant-permissions \ --principal '{"DataLakePrincipalIdentifier": "arn:aws:iam::account-id:role/datazone_usr_role_project-id_environment-id"}' \ --permissions '["DESCRIBE"]' \ --resource '{"Database": {"DatabaseName": "tip_tutorial_db", "CatalogId": "account-id"}}' # Grant SELECT and DESCRIBE on the table aws lakeformation grant-permissions \ --principal '{"DataLakePrincipalIdentifier": "arn:aws:iam::account-id:role/datazone_usr_role_project-id_environment-id"}' \ --permissions '["SELECT","DESCRIBE"]' \ --resource '{"Table": {"DatabaseName": "tip_tutorial_db", "Name": "employees", "CatalogId": "account-id"}}'
EMR Serverless 연결에 대한 콘솔 제한
Amazon SageMaker Unified Studio는 현재 콘솔 컴퓨팅 구성을 통해 기존 Amazon EMR on EC2 클러스터 추가를 지원합니다. EMR Serverless 애플리케이션의 경우 위에 표시된 AWS CLI 방법을 사용합니다.
7단계: 샘플 테이블 쿼리
Amazon SageMaker Unified Studio 프로젝트에서 JupyterLab IDE 공간을 엽니다.
노트북 실행을 위한 컴퓨팅으로 EMR Serverless 연결을 선택합니다.
새 노트북 셀에서 다음 PySpark 쿼리를 실행합니다.
%%pyspark my-emr-serverless-connection spark.sql("SHOW DATABASES").show() %%pyspark my-emr-serverless-connection spark.sql("SELECT * FROM tip_tutorial_db.employees LIMIT 10").show()쿼리가 데이터를 반환하는지 확인합니다. 이렇게 하면 IAM Identity Center 자격 증명이 Lake Formation으로 전파되었고 자격 증명에 따라 액세스 권한이 부여되었음을 확인할 수 있습니다.
애플리케이션 콜드 스타트
연결을 생성한 후 처음으로 셀을 실행하면 EMR Serverless가 애플리케이션을 시작합니다(콜드 스타트). 이 작업은 2~3분이 걸릴 수 있습니다. 세션이 활성화되어 있는 동안 후속 셀은 몇 초 이내에 실행됩니다.
액세스 거부 오류 문제 해결
액세스 거부 오류가 발생하면 다음을 확인합니다.
IAM Identity Center 사용자 또는 그룹에 데이터베이스의 DESCRIBE 및 Lake Formation의 테이블에 SELECT/DESCRIBE 권한이 부여되었습니다.
작업 실행 역할에는
lakeformation:GetDataAccess및 AWS Glue 데이터 카탈로그 권한이 있습니다.DataZone 사용자 역할에는 데이터베이스 및 테이블에 대한 Lake Formation 권한이 있습니다.
Lake Formation Amazon S3 위치는
sts:SetContext(서비스 연결 역할이 아닌)를 포함하는 사용자 지정 역할에 등록됩니다.
문제 해결
| 오류 | 원인 | 수정 |
|---|---|---|
AccessDeniedException: emr-serverless:GetApplication |
DataZone 사용자 역할에는 EMR Serverless 권한이 없습니다. | DataZone 사용자 역할에 EMR Serverless 인라인 정책을 추가합니다(6단계 참조). |
| 애플리케이션이 시작 상태에 도달할 때까지 대기 중 시간 초과 | EMR Serverless 앱 콜드 스타트가 기본 제한 시간을 초과합니다. | 셀을 다시 실행합니다. 앱은 백그라운드에서 계속 시작되며 다음 시도에서 준비됩니다. |
| 세션을 찾을 수 없습니다. 유휴 제한 시간으로 인해 정리되었습니다. | 작업 실행 역할에 대한 권한이 부족하여 Spark 세션을 시작하지 못했습니다. | 작업 실행 역할에 Amazon S3, Amazon CloudWatch Logs, AWS Glue 및 Lake Formation 권한이 있는지 확인합니다(4단계 참조). |
| Lake Formation 권한 부족(들): 데이터베이스에 필수 설명 | 자격 증명 또는 역할에 데이터베이스 수준 Lake Formation 권한이 없습니다. | 데이터베이스의 DESCRIBE를 IAM Identity Center 사용자, 작업 실행 역할 및 DataZone 사용자 역할에 부여합니다. |
TABLE_OR_VIEW_NOT_FOUND |
Spark 세션은 AWS Glue 데이터 카탈로그를 사용하도록 구성되지 않았습니다. | EMR Serverless 애플리케이션에 spark.sql.catalogImplementation=hive 및 AWS Glue 메타스토어 팩토리 클래스가 포함되어 있는지 확인합니다runtimeConfiguration(3단계 참조). |
AccessDeniedException: CreateConnection |
호출자가 DataZone 프로젝트의 멤버가 아닙니다. | 를 호출하기 전에 역할을 프로젝트 기여자로 추가합니다create-connection(6단계 참조). |
리소스 정리
이 자습서에서 생성한 리소스에 계속해서 비용이 부과되지 않도록 하려면 해당 리소스를 삭제해야 합니다.
EMR Serverless 애플리케이션을 삭제합니다.
Amazon SageMaker Unified Studio 연결을 제거하고 Amazon SageMaker Unified Studio 프로젝트(및이 자습서에서만 생성한 경우 도메인)를 삭제합니다.
부여한 Lake Formation 권한을 취소하고 Amazon S3 데이터 위치의 등록을 취소합니다.
2단계와 4단계에서 생성한 IAM 역할을 삭제합니다.
테스트 Amazon S3 버킷 및 샘플 데이터를 삭제합니다.
다음 단계
CloudTrail에서 자격 증명 전파를 확인하려면 EMR Serverless 서비스
sts:SetContext에서를 사용하여AssumeRole이벤트를 찾습니다.다른 사용자의 액세스를 제한하려면 추가 IAM Identity Center 사용자를 생성하고 동일한 테이블에 대해 다른 Lake Formation 권한을 부여합니다(예: 열 수준 또는 행 수준 필터링).
프로덕션 배포의 경우 와일드카드를 사용하는 대신 작업 실행 역할의 Amazon S3 및 AWS Glue 권한 범위를 특정 리소스로 지정합니다.
Amazon SageMaker Unified Studio에서 EMR Serverless를 사용하는 방법에 대한 자세한 내용은 Amazon SageMaker Unified Studio의 EMR Serverless를 참조하세요.