

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

# Amazon Redshift 데이터 공유에 대한 권한 설정
<a name="setup-ds-perms"></a>

 이 주제에서는 데이터 공유 초대를 수락하고, 페더레이션된 데이터베이스를 생성하고, 권한을 부여하기 위해 따라야 하는 단계를 설명합니다. Lake Formation 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용할 수 있습니다. 이 주제의 예제는 동일한 계정의 생산자 클러스터, 데이터 카탈로그 및 데이터 소비자를 보여줍니다.

Lake Formation 크로스 계정 기능에 대해 자세히 알아보려면 [Lake Formation에서의 교차 계정 데이터 공유](cross-account-permissions.md) 섹션을 참조하세요.

**데이터 공유에 대한 권한을 설정하려면**

1. 데이터 공유 초대를 검토하고 수락합니다.

------
#### [ Console ]

   1.  [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)에서 데이터 레이크 관리자로 Lake Formation 콘솔에 로그인합니다. **데이터 공유** 페이지로 이동합니다.

   1. 액세스 권한이 있는 데이터 공유를 검토합니다. **상태** 열은 데이터 공유에 대한 현재 참여 상태를 나타냅니다. **보류 중** 상태는 데이터 공유에 추가되었지만 아직 참여를 수락하지 않았거나 초대를 거부했음을 나타냅니다.

   1.  데이터 공유 초대에 응답하려면 데이터 공유 이름을 선택하고 **초대 검토**를 선택합니다. **데이터 공유 수락 또는 거부**에서 초대 세부 정보를 검토합니다. 초대를 수락하려면 **수락**을, 초대를 거부하려면 **거부**를 선택합니다. 초대를 거부하면 데이터 공유에 액세스할 수 없습니다.

------
#### [ AWS CLI ]

   다음 예제는 초대를 보고, 수락하고, 등록하는 방법을 보여 줍니다. AWS 계정 ID를 유효한 AWS 계정 ID로 바꿉니다. `data-share-arn`을 데이터 공유를 참조하는 실제 Amazon 리소스 이름(ARN)으로 바꿉니다.

   1. 보류 중인 초대를 봅니다.

      ```
      aws redshift describe-data-shares \
       --data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
      ```

   1. 데이터 공유를 수락합니다.

      ```
       aws redshift associate-data-share-consumer \
       --data-share-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds' \
       --consumer-arn 'arn:aws:glue:us-east-1:111122223333:catalog
      ```

   1. Lake Formation 계정에 데이터 공유를 등록합니다. [RegisterResource](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_RegisterResource.html) API 작업을 사용하여 Lake Formation에 데이터 공유를 등록할 수 있습니다. `DataShareArn`은 `ResourceArn`의 파라미터입니다.
**참고**  
이것은 필수 단계입니다.

      ```
      aws lakeformation register-resource \
       --resource-arn 'arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds'
      ```

------

1. 데이터베이스를 생성합니다.

    데이터 공유 초대를 수락한 후에는 데이터 공유와 연결된 Amazon Redshift 데이터베이스를 가리키는 데이터베이스를 생성해야 합니다. 데이터베이스를 생성하려면 데이터 레이크 관리자여야 합니다.

------
#### [ Console ]

   1.  **초대** 창에서 데이터 공유를 선택하고 **데이터베이스 세부 정보 설정**을 선택합니다.

   1.  **데이터베이스 세부 정보 설정**에서 데이터 공유의 고유한 이름과 식별자를 입력합니다. 이 식별자를 사용하여 메타데이터 계층 구조(dbname.schema.table)에서 내부적으로 데이터 공유를 매핑합니다.

   1.  공유 데이터베이스 및 테이블에 대한 권한을 다른 사용자에게 부여하려면 **다음**을 선택합니다.

------
#### [ AWS CLI ]

    AWS CLI를 사용하여 Lake Formation과 공유되는 Amazon Redshift 데이터베이스를 가리키는 데이터베이스를 생성하려면 다음 예제 코드를 사용합니다.

   ```
   aws glue create-database --cli-input-json \
   
   '{
    "CatalogId": "111122223333",
    "DatabaseInput": {
     "Name": "tahoedb",
     "FederatedDatabase": {
          "Identifier": "arn:aws:redshift:us-east-1:111122223333:datashare:abcd1234-1234-ab12-cd34-1a2b3c4d5e6f/federatedds",
          "ConnectionName": "aws:redshift"
      }
    }
    }'
   ```

------

1. 권한을 부여합니다.

    데이터베이스를 생성한 후 계정의 사용자 또는 외부 AWS 계정 및 조직에 권한을 부여할 수 있습니다. Amazon Redshift 데이터 공유에 매핑된 페더레이션된 데이터베이스에 대한 데이터 쓰기 권한(삽입, 삭제) 및 메타데이터 권한(변경, 삭제, 생성)은 부여할 수 없습니다. 권한 부여에 대한 자세한 내용은 [Lake Formation 권한 관리](managing-permissions.md) 섹션을 참조하세요.
**참고**  
데이터 레이크 관리자는 페더레이션된 데이터베이스의 테이블만 볼 수 있습니다. 다른 작업을 수행하려면 해당 테이블에 대해 직접 더 많은 권한을 부여해야 합니다.

------
#### [ Console ]

   1. **권한 부여** 화면에서 권한을 부여할 사용자를 선택합니다.

   1. **권한 부여**를 선택합니다.

------
#### [ AWS CLI ]

   AWS CLI를 사용하여 데이터베이스 및 테이블 권한을 부여하려면 다음 예제를 사용합니다.

   ```
   aws lakeformation grant-permissions --input-cli-json file://input.json
   
   {
      "Principal": {
              "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
      },
      "Resource": {
             "Database": {
                   "CatalogId": "111122223333",
                    "Name": "tahoedb"
              }
       },
       "Permissions": [
                "DESCRIBE"
        ],
       "PermissionsWithGrantOption": [
                            
        ]
    }
   ```

   ```
   aws lakeformation grant-permissions --input-cli-json file://input.json
   
   {
                      "Principal": {
                             "DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/non-admin"
                      },
                     "Resource": {
                            "Table": {
                                 "CatalogId": "111122223333",
                                 "DatabaseName": "tahoedb",
                                 "Name": "public.customer"
                          }
                     },
                    "Permissions": [
                           "SELECT"
                     ],
                    "PermissionsWithGrantOption": [
                            "SELECT"
                      ]
    }
   ```

------