기존 IAM 역할을 사용하여 Amazon DataZone 구독 이행
현재 릴리스에서 Amazon DataZone은 기존 IAM 역할을 사용하여 데이터에 액세스할 수 있도록 지원합니다. 이를 위해 구독을 이행하는 데 사용하는 Amazon DataZone 환경에서 구독 대상을 생성할 수 있습니다. 연결된 AWS 계정 중 하나의 환경에 대한 구독 대상을 생성하려면 다음 단계를 사용할 수 있습니다.
1단계: Amazon DataZone 도메인이 RAM 정책의 버전 2 이상을 사용하고 있는지 확인합니다.
-
AWS RAM 콘솔에서 내 공유: 리소스 공유 페이지로 이동합니다.
-
AWS 리소스 공유는 특정 AWS에 존재하므로 콘솔의 오른쪽 상단에 있는 드롭다운 목록에서 적절한 AWS 리전을 선택합니다.
-
Amazon DataZone 도메인에 해당하는 리소스 공유를 선택한 다음 수정을 선택합니다. RAM 공유가
DataZone-<domain-name>-<domain-id>이름으로 생성되면 도메인의 이름 또는 ID를 사용하여 Amazon DataZone 도메인의 RAM 공유를 식별할 수 있습니다. -
다음을 선택하여 RAM 정책의 버전을 확인하고 수정할 수 있는 다음 단계로 진행합니다.
-
RAM 정책의 버전이 버전 2 이상인지 확인합니다. 그렇지 않은 경우 드롭다운을 사용하여 버전 2 이상을 선택합니다.
-
4단계로 건너뛰기: 검토 및 업데이트를 선택합니다.
-
리소스 공유 업데이트를 선택합니다.
2단계: 연결된 계정에서 구독 대상 생성
-
현재 릴리스에서 Amazon DataZone은 API만 사용하여 구독 대상 생성을 지원합니다. 다음은 AWS Glue 테이블 및 Amazon Redshift 테이블 또는 뷰에 대한 구독을 이행하기 위한 구독 대상을 생성하는 데 사용할 수 있는 페이로드의 몇 가지 예입니다. 자세한 내용은 CreateSubscriptionTarget을 참조하세요.
AWS Glue 구독 대상의 예
{ "domainIdentifier": "<DOMAIN_ID>", "environmentIdentifier": "<ENVIRONMENT_ID>", "name": "<SUBSCRIPTION_TARGET_NAME>", "type": "GlueSubscriptionTargetType", "authorizedPrincipals" : ["IAM_ROLE_ARN"], "subscriptionTargetConfig" : [{"content": "{\"databaseName\": \"<DATABASE_NAME>\"}", "formName": "GlueSubscriptionTargetConfigForm"}], "manageAccessRole": "<GLUE_DATA_ACCESS_ROLE_IN_ASSOCIATED_ACCOUNT_ARN>", "applicableAssetTypes" : ["GlueTableAssetType"], "provider": "Amazon DataZone" }Amazon Redshift 구독 대상의 예:
{ "domainIdentifier": "<DOMAIN_ID>", "environmentIdentifier": "<ENVIRONMENT_ID>", "name": "<SUBSCRIPTION_TARGET_NAME>", "type": "RedshiftSubscriptionTargetType", "authorizedPrincipals" : ["REDSHIFT_DATABASE_ROLE_NAME"], "subscriptionTargetConfig" : [{"content": "{\"databaseName\": \"<DATABASE_NAME>\", \"secretManagerArn\": \"<SECRET_MANAGER_ARN>\",\"clusterIdentifier\": \"<CLUSTER_IDENTIFIER>\"}", "formName": "RedshiftSubscriptionTargetConfigForm"}], "manageAccessRole": "<REDSHIFT_DATA_ACCESS_ROLE_IN_ASSOCIATED_ACCOUNT_ARN>", "applicableAssetTypes" : ["RedshiftViewAssetType", "RedshiftTableAssetType"], "provider": "Amazon DataZone" }중요
-
위의 API 직접 호출에 사용하는 environmentIdentifier는 API 직접 호출을 수행하는 것과 동일한 연결 계정에 있어야 합니다. 그렇지 않으면 API 직접 호출이 성공하지 못합니다.
-
‘authorizedPrincipals’에서 사용하는 IAM 역할 ARN은 구독 대상에 구독 자산을 추가한 후 Amazon DataZone이 액세스 권한을 부여하는 역할입니다. 이러한 승인된 위탁자는 구독 대상이 생성되는 환경과 동일한 계정에 속해야 합니다.
-
Amazon DataZone이 구독 이행을 완료하려면 공급자 필드의 값이 ‘Amazon DataZone’이어야 합니다.
-
subscriptionTargetConfig에 제공된 데이터베이스 이름은 대상을 생성하는 계정에 이미 있어야 합니다. Amazon DataZone은 이 데이터베이스를 생성하지 않습니다. 또한 관리 액세스 역할에 이 데이터베이스에 대한 CREATE TABLE 권한이 있는지 확인합니다.
-
또한 권한 있는 위탁자로 제공되는 역할(AWS Glue의 IAM 역할 및 Amazon Redshift의 데이터베이스 역할)이 환경 계정에 이미 있는지 확인합니다. Amazon Redshift 구독 대상의 경우 클러스터에 연결하는 동안 수임되는 역할에 추가 업데이트가 필요합니다. 이 역할에는 RedshiftDbRoles 태그가 역할에 연결되어 있어야 합니다. 태그의 값은 쉼표로 구분된 목록일 수 있습니다. 값은 구독 대상을 생성하는 동안 승인된 위탁자로 제공된 데이터베이스 역할이어야 합니다.
-
3단계: 새 테이블 구독 및 새 대상 구독 이행
-
구독 대상을 생성한 후에는 새 테이블을 구독할 수 있으며 Amazon DataZone은 해당 테이블을 위의 대상으로 이행합니다.