この記事では、Unity カタログを使用して s3a://
パス内のファイルを読み取るために KMS キーを使用してサーバー側暗号化を構成する方法について説明します。 暗号化された S3 バケット内の外部テーブルとボリュームへのクラウド間アクセスが必要なユーザーに提供されます。
Unity カタログを使用して S3 の暗号化を構成する
Unity カタログの外部テーブルとボリュームが S3 のデータにアクセスできるように、サーバー側の暗号化を構成できます。 SSE暗号化は、Delta Sharing を使用して共有される外部テーブルではサポートされていません。
手順 1: AWS で KMS キー ポリシーを更新する
S3 のデータを保護するために、AWS では、Amazon S3 マネージド キー (SSE-S3) または AWS KMS キー (SSE-KMS) を使用したサーバー側暗号化 (SSE) がサポートされています。 AWS S3 マネージド キーを使用する場合は、手順 2 に進みます。
AWS で、KMS サービスに移動します。
アクセス許可を追加するキーをクリックします。
[ キー ポリシー ] セクションで、[ ポリシー ビューに切り替える] を選択します。
S3 でキーを使用できるようにするキー ポリシー セクションを編集します。次に例を示します。
{ "Sid": "Allow access through S3 for all principals in the account that are authorized to use S3", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "<AWS ACCOUNT ID>", "kms:ViaService": "s3.<REGION>.amazonaws.com" } } },
[ 変更の保存] をクリックします。
手順 2: Unity カタログを使用して S3 へのアクセスを構成する
「Azure Data Lake Storage に接続するためのストレージ資格情報を作成する」の手順に従って、S3 に接続するためのストレージ資格情報を作成します。
必ず、S3 バケットと同じアカウントに IAM ポリシーを作成します。 SSE-KMS を使用している場合は、ポリシーに次を含めます。
{ "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<KMS-KEY>" ], "Effect": "Allow" },
「手順 1: IAM ロールを作成する」を参照してください。
「クラウド ストレージを Azure Databricks に接続する外部の場所を作成する」の手順に従って、S3 に接続する外部の場所を作成します。
「外部の場所で 暗号化アルゴリズムを構成する (AWS S3 のみ)」の手順に従って、外部の場所でサーバー側の暗号化を構成します。