次の方法で共有


KMS を使用して S3 の暗号化を構成する

この記事では、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 に進みます。

  1. AWS で、KMS サービスに移動します。

  2. アクセス許可を追加するキーをクリックします。

  3. [ キー ポリシー ] セクションで、[ ポリシー ビューに切り替える] を選択します。

  4. 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"
            }
        }
    },
    
  5. [ 変更の保存] をクリックします

手順 2: Unity カタログを使用して S3 へのアクセスを構成する

  1. 「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 ロールを作成する」を参照してください。

  2. 「クラウド ストレージを Azure Databricks に接続する外部の場所を作成する」の手順に従って、S3 に接続する外部の場所を作成します

  3. 「外部の場所で 暗号化アルゴリズムを構成する (AWS S3 のみ)」の手順に従って、外部の場所でサーバー側の暗号化を構成します。