Amazon DataZone での保管中のデータ暗号化 - Amazon DataZone

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

Amazon DataZone での保管中のデータ暗号化

デフォルトでは、保管中のデータを暗号化することで、機密データの保護に伴う運用のオーバーヘッドと複雑な作業を軽減できます。同時に、セキュリティを重視したアプリケーションを構築することで、暗号化のコンプライアンスと規制の厳格な要件を満たすことができます。

Amazon DataZone は、デフォルト所有 AWSのキーを使用して、保管中のデータを自動的に暗号化します。 AWS 所有キーの使用を表示、管理、または監査することはできません。詳細については、「AWS owned keys」を参照してください。

この暗号化レイヤーを無効にしたり、別の暗号化タイプを選択したりすることはできませんが、Amazon DataZone ドメインの作成時にカスタマーマネージドキーを選択することで、既存の AWS 所有の暗号化キーに 2 番目の暗号化レイヤーを追加できます。Amazon DataZone は、作成、所有、管理できる対称カスタマーマネージドキーの使用をサポートし、既存の AWS 所有暗号化に 2 番目の暗号化レイヤーを追加します。この暗号化レイヤーはユーザーが完全に制御できるため、以下のタスクを実行できます:

  • キーポリシーの確立と維持

  • IAM ポリシーとグラントの確立と維持

  • キーポリシーの有効化と無効化

  • キー暗号化マテリアルのローテーション

  • タグを追加する

  • キーエイリアスの作成

  • キー削除のスケジュール

詳細については、「カスタマーマネージドキー」を参照してください。

注記

Amazon DataZone は、 AWS 所有キーを使用して保管時の暗号化を自動的に有効にし、顧客データを無料で保護します。

AWS KMS 料金は、カスタマーマネージドキーの使用に適用されます。料金の詳細については、「AWS Key Management Service の料金」を参照してください。

Amazon DataZone が KMS AWS で許可を使用する方法

Amazon DataZone では、カスタマーマネージドキーを使用するために 3 つのグラントが必要です。カスタマーマネージドキーで暗号化された Amazon DataZone ドメインを作成すると、Amazon DataZone は CreateGrant リクエストを AWS KMS に送信することで、ユーザーに代わってグラントとサブグラントを作成します。KMS AWS の許可は、Amazon DataZone にアカウントの KMS キーへのアクセスを許可するために使用されます。Amazon DataZone は、以下の内部オペレーションでユーザーのカスタマーマネージドキーを使用するために、以下のグラントを作成します。

以下のオペレーションのために保管中のデータを暗号化するための 1 つのグラント:

  • DescribeKey リクエストを AWS KMS に送信して、Amazon DataZone ドメインコレクションの作成時に入力された対称カスタマーマネージド KMS キー ID が有効であることを確認します。

  • GenerateDataKeyrequests を AWS KMS に送信して、カスタマーマネージドキーで暗号化されたデータキーを生成します。

  • Decrypt リクエストを AWS KMS に送信して、暗号化されたデータキーを復号し、それらを使用してデータを暗号化できるようにします。

  • RetireGrant は、ドメインが削除されたときにグラントを廃止します。

データの検索と検出のための 2 つのグラント:

グラントへのアクセスの取り消しや、カスタマーマネージドキーに対するサービスのアクセスの取り消しは、いつでもできます。これを行うと、Amazon DataZone はカスタマーマネージドキーによって暗号化されたすべてのデータにアクセスできなくなり、そのデータに依存するオペレーションが影響を受けます。例えば、Amazon DataZone がアクセスできないデータアセットの詳細を取得しようとすると、オペレーションによって AccessDeniedException エラーが返されます。

カスタマーマネージドキーを作成する

対称カスタマーマネージドキーは、 AWS マネジメントコンソールまたは KMS APIs AWS を使用して作成できます。

対称カスタマーマネージドキーを作成するには、 AWS 「 Key Management Service デベロッパーガイド」の「対称カスタマーマネージドキーの作成」の手順に従います。

キーポリシー - キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。キーポリシーは、カスタマーマネージドキーの作成時に指定できます。詳細については、 AWS 「 Key Management Service デベロッパーガイド」の「カスタマーマネージドキーへのアクセスの管理」を参照してください。

Amazon DataZone リソースでカスタマーマネージドキーを使用するには、キーポリシーで次の API オペレーションを許可する必要があります。

  • kms:CreateGrant – カスタマーマネージドキーにグラントを追加します。グラントによって指定された KMS キーへのアクセスを制御します。これにより、Amazon DataZone が必要とするグラントオペレーションへのアクセスが許可されます。グラントの使用の詳細については、 AWS 「 Key Management Service デベロッパーガイド」を参照してください。

  • kms:DescribeKey – カスタマーマネージドキーの詳細を提供し、Amazon DataZone がキーを検証できるようにします。

  • kms:GenerateDataKey - AWS KMS の外部で使用する一意の対称データキーを返します。

  • kms:Decrypt – KMS キーによって暗号化された暗号文を復号します。

Amazon DataZone に追加できるポリシーステートメントの例を以下に示します。

"Statement" : [ { "Sid" : "Allow access to principals authorized to manage Amazon DataZone", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::<account_id>:root" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource" : "arn:aws:kms:region:<account_id>:key/key_ID", } ]
注記

KMS ポリシーでの拒否は、Amazon DataZone データポータルを介してアクセスされるリソースには適用されません。

ポリシーでアクセス許可を指定する方法の詳細については、 AWS 「 Key Management Service デベロッパーガイド」を参照してください。

キーアクセスのトラブルシューティングの詳細については、 AWS 「 Key Management Service デベロッパーガイド」を参照してください。

Amazon DataZone のカスタマーマネージドキーの指定

Amazon DataZone 暗号化コンテキスト

暗号化コンテキストは、データに関する追加のコンテキスト情報を含むキーと値のペアのオプションセットです。

AWS KMS は、追加の認証データとして暗号化コンテキストを使用して、認証された暗号化をサポートします。データを暗号化するリクエストに暗号化コンテキストを含めると、 AWS KMS は暗号化コンテキストを暗号化されたデータにバインドします。データを復号化するには、そのリクエストに (暗号化時と) 同じ暗号化コンテキストを含めます。

Amazon DataZone では、次の暗号化コンテキストを使用します。

"encryptionContextSubset": { "aws:datazone:domainId": "{root-domain-uuid}" }

モニタリングに暗号化コンテキストを使用する - 対称カスタマーマネージドキーを使用して Amazon DataZone を暗号化する場合は、監査レコードとログで暗号化コンテキストを使用して、カスタマーマネージドキーがどのように使用されているかを特定することもできます。暗号化コンテキストは、 AWS CloudTrail または Amazon CloudWatch Logs によって生成されたログにも表示されます。

対称カスタマーマネージドキーへのアクセスコントロールに暗号化コンテキストを使用する - 対称カスタマーマネージドキーへのアクセスを制御するための条件として、キーポリシーと IAM ポリシーで暗号化コンテキストを使用できます。グラントに暗号化コンテキストの制約を使用することもできます。

Amazon DataZone は、グラントに暗号化コンテキスト制約を使用して、アカウントまたはリージョン内のカスタマーマネージドキーへのアクセスを制御します。グラントの制約では、指定された暗号化コンテキストの使用をグラントが許可するオペレーションが必要です。

次に、特定の暗号化コンテキストのカスタマーマネージドキーへのアクセスを付与するキーポリシーステートメントの例を示します。このポリシーステートメントの条件では、暗号化コンテキストを指定する暗号化コンテキスト制約がグラントに必要です。

{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" },{ "Sid": "Enable Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:datazone:domainId": "{root-domain-uuid}" } } }

Amazon DataZone の暗号化キーのモニタリング

Amazon DataZone リソースで AWS KMS カスタマーマネージドキーを使用すると、AWS CloudTrail を使用して Amazon DataZone が AWS KMS に送信するリクエストを追跡できます。次の例はCreateGrant、Amazon DataZone がカスタマーマネージドキーで暗号化されたデータにアクセスするために呼び出す KMS オペレーションをモニタリングDescribeKeyするための GenerateDataKeyDecrypt、、 の AWS CloudTrail イベントです。 AWS KMS カスタマーマネージドキーを使用して Amazon DataZone ドメインを暗号化すると、Amazon DataZone はユーザーに代わって AWS アカウントの KMS キーにアクセスするCreateGrantリクエストを送信します。Amazon DataZone が作成する許可は、KMS AWS カスタマーマネージドキーに関連付けられたリソースに固有です。さらに、Amazon DataZone は、ドメインを削除する際に、グラントを削除する RetireGrant オペレーションを使用します。次に、CreateGrant オペレーションを記録するイベントの例を示します。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-22T17:02:00Z" } }, "invokedBy": "datazone.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:datazone:domainId": "SAMPLE-root-domain-uuid" } }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "operations": [ "Decrypt", "GenerateDataKey", "RetireGrant", "DescribeKey" ], "granteePrincipal": "datazone.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

暗号化された Glue カタログを含む Data Lake AWS 環境の作成

高度なユースケースでは、暗号化された AWS Glue カタログを使用する場合は、カスタマー管理の KMS キーを使用するために Amazon DataZone サービスへのアクセスを許可する必要があります。これを行うには、カスタム KMS ポリシーを更新し、キーにタグを追加します。暗号化された Glue カタログ内のデータを操作するための Amazon DataZone AWS サービスへのアクセスを許可するには、次の手順を実行します。

  • カスタム KMS キーに次のポリシーを追加します。詳細については、「キーポリシーの変更」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Allow datazone environment roles to decrypt using the key", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:glue_catalog_id": "<GLUE_CATALOG_ID>" }, "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::<ENVIRONMENT_ACCOUNT_1>:role/*datazone_usr*", "arn:aws:iam::<ENVIRONMENT_ACCOUNT_2>:role/*datazone_usr*" ] } } }, { "Sid": "Allow datazone environment roles to describe the key", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::<ENVIRONMENT_ACCOUNT_1>:role/*datazone_usr*", "arn:aws:iam::<ENVIRONMENT_ACCOUNT_2>:role/*datazone_usr*" ] } } } ] }
    重要
    • 環境を作成するアカウント IDs を使用して、ポリシーの "aws:PrincipalArn" ARNs を変更する必要があります。環境を作成する各アカウントは、 としてポリシーにリストされている必要があります"aws:PrincipalArn"

    • また、<GLUE_CATALOG_ID> を Glue カタログがある有効な AWS アカウント ID AWS に置き換える必要があります。

    • このポリシーは、指定されたアカウント (複数可) のすべての Amazon DataZone 環境ユーザーロールに キーを使用するアクセスを許可することに注意してください。特定の環境ユーザーロールにのみキーの使用を許可する場合は、ワイルドカード形式ではなく、環境ユーザーロール名全体 (例: arn:aws:iam::<ENVIRONMENT_ACCOUNT_ID>:role/datazone_usr_<ENVIRONMENT_ID> <ENVIRONMENT_ID> は環境の ID) を指定する必要があります。

  • カスタム KMS キーに次のタグを追加します。詳細については、「タグを使用して KMS キーへのアクセスを制御する」を参照してください。

    key: AmazonDataZoneEnvironment value: all