권한 예제 시나리오 - AWS Lake Formation

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

권한 예제 시나리오

다음 시나리오는 AWS Lake Formation의 데이터에 대한 액세스를 보호하기 위해 권한을 설정하는 방법을 보여줍니다.

Shirley는 데이터 관리자입니다. 그녀는 회사 에 데이터 레이크를 설정하려고 합니다 AnyCompany. 현재 모든 데이터는 Amazon S3에 저장됩니다. John은 마케팅 관리자이며 고객 구매 정보(s3://customerPurchases에 포함됨)에 대한 쓰기 액세스 권한이 필요합니다. 마케팅 분석가인 Diego가 이번 여름 John의 팀에 합류합니다. John은 Shirley의 개입 없이 데이터에 대한 쿼리를 수행할 수 있는 액세스 권한을 Diego에게 부여하려고 합니다.

재무 부서의 Mateo는 회계 데이터(예: s3://transactions) 쿼리를 위해 액세스 권한이 필요합니다. 그는 재무 팀에서 사용하는 데이터베이스(Finance_DB)의 테이블에 있는 거래 데이터를 쿼리하려고 합니다. 그의 매니저인 Arnav가 그에게 Finance_DB에 대한 액세스 권한을 줄 수 있습니다. 회계 데이터를 수정할 수는 없지만 데이터를 예측에 적합한 형식(스키마)으로 변환할 수 있어야 합니다. 이 데이터는 그가 수정할 수 있는 별도의 버킷(s3://financeForecasts)에 저장됩니다.

요약하면 다음과 같습니다.

  • Shirley는 데이터 레이크 관리자입니다.

  • John의 경우 데이터 카탈로그에 새 데이터베이스와 테이블을 생성하려면 CREATE_DATABASECREATE_TABLE 권한이 필요합니다.

  • 또한 John은 자신이 생성하는 테이블에 대한 SELECT, INSERTDELETE 권한도 필요합니다.

  • Diego는 쿼리 실행을 위해 테이블에 대한 SELECT 권한이 필요합니다.

의 직원은 다음 작업을 AnyCompany 수행하여 권한을 설정합니다. 이 시나리오에 표시된 API 작업은 명확성을 위해 단순화된 구문을 보여줍니다.

  1. Shirley는 고객 구매 정보가 포함된 Amazon S3 경로를 Lake Formation에 등록합니다.

    RegisterResource(ResourcePath("s3://customerPurchases"), false, Role_ARN )
  2. Shirley는 John에게 고객 구매 정보가 포함된 Amazon S3 경로에 대한 액세스 권한을 부여합니다.

    GrantPermissions(John, S3Location("s3://customerPurchases"), [DATA_LOCATION_ACCESS]) )
  3. Shirley는 John에게 데이터베이스를 생성할 수 있는 권한을 부여합니다.

    GrantPermissions(John, catalog, [CREATE_DATABASE])
  4. John이 데이터베이스 John_DB를 생성합니다. John은 데이터베이스를 생성했으므로 자동으로 해당 데이터베이스에 대한 CREATE_TABLE 권한을 갖게 됩니다.

    CreateDatabase(John_DB)
  5. John이 s3://customerPurchases를 가리키는 테이블 John_Table을 생성합니다. 그는 자신이 생성한 테이블에 대한 모든 권한을 가지고 있으며 테이블에 대한 권한을 부여할 수 있습니다.

    CreateTable(John_DB, John_Table)
  6. John은 분석가인 Diego에게 테이블 John_Table에 대한 액세스를 허용합니다.

    GrantPermissions(Diego, John_Table, [SELECT])
  7. John은 분석가인 Diego에게 s3://customerPurchases/London/에 대한 액세스를 허용합니다. Shirley는 이미 s3://customerPurchases를 등록했으므로 해당 하위 폴더는 Lake Formation에 등록되어 있습니다.

    GrantDataLakePrivileges( 123456789012/datalake, Diego, [DATA_LOCATION_ACCESS], [], S3Location("s3://customerPurchases/London/") )
  8. John은 분석가인 Diego가 데이터베이스 John_DB에 테이블을 생성할 수 있도록 허용합니다.

    GrantDataLakePrivileges( 123456789012/datalake, Diego, John_DB, [CREATE_TABLE], [] )
  9. Diego는 s3://customerPurchases/London/에서 John_DB에 테이블을 생성하고 ALTER, DROP, SELECT, INSERTDELETE 권한을 자동으로 가져옵니다.

    CreateTable( 123456789012/datalake, John_DB, Diego_Table )