

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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.  Lake Formation コンソール ([https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)) にデータレイク管理者としてサインインします。**[Data sharing]** (データ共有) ページに移動します。

   1. アクセスが許可されているデータ共有を確認します。**[Status]** (ステータス) 列は、データ共有の現在の参加ステータスを示します。**[Pending]** (保留中) ステータスは、ユーザーがデータ共有に追加されたが、招待を承諾または拒否していないことを示します。

   1.  データ共有の招待に応答するには、データ共有名を選択し、**[招待を確認]** を選択します。**[データ共有の承諾または拒否]** で、招待の詳細を確認します。**[Accept]** (承諾) を選択して招待を承諾するか、**[Reject]** (拒否) を選択して招待を却下します。招待を拒否した場合、データ共有にはアクセスできません。

------
#### [ 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.  **[Invitations]** (招待) ペインからデータ共有を選択し、**[Set database details]** (データベース詳細の設定) を選択します。

   1.  **[Set database details]** (データベース詳細の設定) に、データ共有の固有の名前と ID を入力します。この ID は、メタデータ階層 (dbName.schema.table) でデータ共有を内部的にマッピングするために使用されます。

   1.  共有データベースとテーブルに対するアクセス許可を他のユーザーに付与するには、**[Next]** (次へ) を選択します。

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

    次のサンプルコードを使用して、Lake Formation と共有されている Amazon Redshift データベースを指すデータベースを AWS CLI で作成します。

   ```
   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. **[Grant permissions]** (アクセス許可の付与) 画面で、アクセス許可を付与するユーザーを選択します。

   1. **[Grant]** (付与) を選択します。

------
#### [ 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"
                      ]
    }
   ```

------