View a markdown version of this page

でのデータ保護 AWS Clean Rooms - AWS Clean Rooms

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

でのデータ保護 AWS Clean Rooms

AWS 責任共有モデル は、 AWS Clean Roomsでのデータ保護に適用されます。このモデルで説明されているように、 AWS はすべての を実行するグローバルインフラストラクチャを保護する責任があります AWS クラウド。ユーザーは、このインフラストラクチャでホストされるコンテンツに対する管理を維持する責任があります。また、使用する「 AWS のサービス 」のセキュリティ設定と管理タスクもユーザーの責任となります。データプライバシーの詳細については、「Data Privacy FAQChina」を参照してください。 欧州におけるデータ保護に関する情報については、General Data Protection Regulation (GDPR) Center を参照してください。

データ保護の目的で、認証情報を保護し AWS アカウント 、 AWS IAM アイデンティティセンター または AWS Identity and Access Management (IAM) を使用して個々のユーザーを設定することをお勧めします。この方法により、それぞれのジョブを遂行するために必要な権限のみが各ユーザーに付与されます。また、次の方法でデータを保護することもお勧めします:

  • 各アカウントで多要素認証 (MFA) を使用します。

  • SSL/TLS を使用して AWS リソースと通信します。TLS 1.2 は必須ですが、TLS 1.3 を推奨します。

  • で API とユーザーアクティビティのログ記録を設定します AWS CloudTrail。CloudTrail 証跡を使用して AWS アクティビティをキャプチャする方法については、「 AWS CloudTrail ユーザーガイド」のCloudTrail 証跡の使用」を参照してください。

  • AWS 暗号化ソリューションと、その中のすべてのデフォルトのセキュリティコントロールを使用します AWS のサービス。

  • Amazon Macie などの高度な管理されたセキュリティサービスを使用します。これらは、Amazon S3 に保存されている機密データの検出と保護を支援します。

  • コマンドラインインターフェイスまたは API AWS を介して にアクセスするときに FIPS 140-3 検証済み暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「連邦情報処理規格 (FIPS) 140-3」を参照してください。

お客様の E メールアドレスなどの極秘または機密情報を、タグ、または [名前] フィールドなどの自由形式のテキストフィールドに含めないことを強くお勧めします。これは、コンソール、API、または SDK を使用して AWS CLI AWS Clean Rooms または他の AWS のサービス を操作する場合も同様です。 AWS SDKs タグ、または名前に使用される自由記述のテキストフィールドに入力したデータは、請求または診断ログに使用される場合があります。外部サーバーに URL を提供する場合、そのサーバーへのリクエストを検証できるように、認証情報を URL に含めないことを強くお勧めします。

保管中の暗号化

AWS Clean Rooms は、追加の設定を必要とせずに、保管中のすべてのサービスメタデータを常に暗号化します。この暗号化は、 の使用時に自動的に行われます AWS Clean Rooms。

Clean Rooms ML は、保管中のサービスに保存されているすべてのデータを で暗号化します AWS KMS。独自の KMS キーを提供することを選択した場合、類似モデルと類似セグメント生成ジョブの内容は KMS キーで保存時に暗号化されます。

AWS Clean Rooms カスタム ML モデルを使用する場合、サービスは保管時に保存されているすべてのデータを で暗号化します AWS KMS。 は、ユーザーが作成、所有、管理する対称カスタマーマネージドキーを使用して、保管中のデータを暗号化すること AWS Clean Rooms をサポートします。カスタマーマネージドキーが指定されていない場合は、デフォルトで AWS 所有のキー が使用されます。

AWS Clean Rooms は、権限とキーポリシーを使用してカスタマーマネージドキーにアクセスします。グラントへのアクセスの取り消しや、カスタマーマネージドキーに対するサービスのアクセスの取り消しは、いつでもできます。その場合、カスタマーマネージドキーによって暗号化されたデータにはアクセス AWS Clean Rooms できず、そのデータに依存するオペレーションに影響します。たとえば、 AWS Clean Rooms がアクセスできない暗号化された ML 入力チャネルからトレーニング済みモデルを作成しようとすると、 オペレーションはValidationExceptionエラーを返します。

注記

Amazon S3 の暗号化オプションを使用して、保管中のデータを保護できます。

詳細については、「Amazon S3 ユーザーガイド」の「Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) の指定」を参照してください。

内で ID マッピングテーブルを使用する場合 AWS Clean Rooms、サービスは保管時に保存されているすべてのデータを で暗号化します AWS KMS。独自の KMS キーを提供することを選択した場合、ID マッピングテーブルのコンテンツは保管時に を介して KMS キーで暗号化されます AWS Entity Resolution。ID マッピングワークフローで暗号化を使用するために必要なアクセス許可の詳細については、「AWS Entity Resolution ユーザーガイド」の「AWS Entity Resolutionのワークフロージョブロールを作成する」を参照してください。

転送中の暗号化

AWS Clean Rooms は転送中の暗号化に Transport Layer Security (TLS) を使用します。との通信 AWS Clean Rooms は常に HTTPS 経由で行われるため、データは Amazon S3、Amazon Athena、または Snowflake に保存されているかどうかに関係なく、転送中に常に暗号化されます。これには、Clean Rooms ML を使用するときに転送中のすべてのデータが含まれます。

基になるデータの暗号化

基になるデータを暗号化する方法の詳細については、「Cryptographic Computing for Clean Rooms」を参照してください。

キーポリシー

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

AWS Clean Rooms カスタム ML モデルでカスタマーマネージドキーを使用するには、キーポリシーで次の API オペレーションを許可する必要があります。

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

  • kms:Decrypt – 暗号化されたデータを復号し、関連するジョブで使用する AWS Clean Rooms ための へのアクセスを提供します。

  • kms:CreateGrant - Clean Rooms ML は、Amazon ECR の許可を作成することで、Amazon ECR の保管中のトレーニングイメージと推論イメージを暗号化します。詳細については、「Amazon ECR での保管時の暗号化」を参照してください。Clean Rooms ML は、Amazon SageMaker AI を使用してトレーニングジョブと推論ジョブを実行し、SageMaker AI がインスタンスにアタッチされた Amazon EBS ボリュームと Amazon S3 の出力データを暗号化するための許可を作成します。詳細については、Amazon SageMaker AI で暗号化を使用して保管中のデータを保護する」を参照してください。

  • kms:GenerateDataKey - Clean Rooms ML は、サーバー側の暗号化を使用して Amazon S3 に保存されている保管中のデータを暗号化します AWS KMS keys。詳細については、Amazon S3 での AWS KMS keys (SSE-KMS) によるサーバー側の暗号化の使用」を参照してください。

以下は、次のリソースの AWS Clean Rooms に追加できるポリシーステートメントの例です。

合成データを含む ML 入力チャネル

{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow access to principals authorized to use AWS Clean Rooms ML", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::666666666666:role/ExampleRole" }, "Action": [ "kms:GenerateDataKey", "kms:CreateGrant", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cleanrooms-ml.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "Encrypt", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "CreateGrant", "DescribeKey", "RetireGrant", "GenerateDataKey" ] }, "BoolIfExists": { "kms:GrantIsForAWSResource": true } } }, { "Sid": "Allow describe key for principals authorized to use AWS Clean Rooms ML", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/ExampleRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cleanrooms-ml.us-east-1.amazonaws.com" } } }, { "Sid": "Allow grant operations for AWS Clean Rooms ML service principal", "Effect": "Allow", "Principal": { "Service": "cleanrooms-ml.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:CreateGrant", "kms:Decrypt" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "Encrypt", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "CreateGrant", "DescribeKey", "RetireGrant", "GenerateDataKey" ] } } }, { "Sid": "Allow describe key for AWS Clean Rooms ML service principal", "Effect": "Allow", "Principal": { "Service": "cleanrooms-ml.amazonaws.com" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" } ] }

合成データのない ML 入力チャネル

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow access to principals authorized to use AWS Clean Rooms ML", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::666666666666:role/ExampleRole" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cleanrooms-ml.us-east-1.amazonaws.com" } } }, { "Sid": "Allow access to AWS Clean Rooms ML service principal", "Effect": "Allow", "Principal": { "Service": "cleanrooms-ml.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }

トレーニング済みモデルジョブまたはトレーニング済みモデル推論ジョブ

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow grant operations for principals authorized to use AWS Clean Rooms ML", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::666666666666:role/ExampleRole" }, "Action": [ "kms:GenerateDataKey", "kms:CreateGrant", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cleanrooms-ml.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "Encrypt", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "CreateGrant", "DescribeKey", "RetireGrant", "GenerateDataKey" ] }, "BoolIfExists": { "kms:GrantIsForAWSResource": true } } }, { "Sid": "Allow describe key for principals authorized to use AWS Clean Rooms ML", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/ExampleRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cleanrooms-ml.us-east-1.amazonaws.com" } } }, { "Sid": "Allow grant operations for AWS Clean Rooms ML service principal", "Effect": "Allow", "Principal": { "Service": "cleanrooms-ml.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:CreateGrant", "kms:Decrypt" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "Encrypt", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "CreateGrant", "DescribeKey", "RetireGrant", "GenerateDataKey" ] } } }, { "Sid": "Allow describe key for AWS Clean Rooms ML service principal", "Effect": "Allow", "Principal": { "Service": "cleanrooms-ml.amazonaws.com" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" } ] }

Clean Rooms ML は、カスタマーマネージドキーポリシーでのサービス暗号化コンテキストまたはソースコンテキストの指定をサポートしていません。サービスが内部的に使用する暗号化コンテキストは、CloudTrail の顧客に表示されます。

中間テーブルの暗号化

内で中間テーブルを使用する場合 AWS Clean Rooms、サービスは保管時に保存されているすべてのデータを AWS Key Management Service () で暗号化しますAWS KMS。デフォルトでは、サービスはサービスマネージドキーを使用して中間テーブルデータを暗号化します。独自の KMS キーを提供することを選択した場合、サービスは保管中の中間テーブルをそのキーで暗号化します。これは、 AWS KMS keys (SSE-KMS) によるサーバー側の暗号化を使用します。

AWS Clean Rooms は、キーポリシーとサービスプリンシパルを使用して、中間テーブルのカスタマーマネージドキーにアクセスします。サービスは、テーブルが入力されると書き込み時に中間テーブルデータを暗号化し、中間テーブルが後続の分析で使用されるとデータを透過的に復号します。

KMS キー ARN は中間テーブルの作成時に提供され、テーブルのすべてのバージョンに適用されます。中間テーブルの詳細ページの編集アクションを使用して KMS キーを更新できます。新しいキーは、次の入力時に有効になります。各バージョンは、入力時に指定されたキーで暗号化されます。

注記

中間テーブルを削除しても、 AWS KMS オペレーションは必要ありません。Amazon S3 の暗号化されたデータは、マネージドストレージサービスによって削除されます。

中間テーブルに必要な AWS KMS アクセス許可

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

  • kms:DescribeKey – 中間テーブルを作成または更新するときに、キーの状態を検証します。

  • kms:GenerateDataKey – テーブルが入力されると、中間テーブルデータを暗号化します。Amazon S3 は、サービス AWS KMS に代わって を呼び出して、SSE-KMS 暗号化用のデータキーを生成します。

  • kms:Decrypt – 後続の分析でテーブルが参照されると、中間テーブルデータを復号します。Amazon S3 は、 サービス AWS KMS に代わって を呼び出して、データを透過的に復号します。

中間テーブルのキーポリシーの例

以下は、中間テーブルでカスタマーマネージドキーを使用するためのキーポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Clean Rooms to encrypt and decrypt intermediate table data", "Effect": "Allow", "Principal": { "Service": "cleanrooms.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cleanrooms:intermediateTableArn": "arn:aws:cleanrooms:us-east-1:666666666666:membership/membership-id/intermediatetable/intermediate-table-id" }, "ForAnyValue:ArnEquals": { "aws:SourceArn": [ "arn:aws:cleanrooms:us-east-1:666666666666:membership/member-1-membership-id", "arn:aws:cleanrooms:us-east-1::membership/member-2-membership-id" ] } } }, { "Sid": "Allow Clean Rooms to describe key", "Effect": "Allow", "Principal": { "Service": "cleanrooms.amazonaws.com" }, "Action": [ "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow caller to validate key via Clean Rooms", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::666666666666:role/ExampleRole" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cleanrooms.us-east-1.amazonaws.com", "kms:CallerAccount": "666666666666" } } } ] }

最初のステートメントは、母集団中のデータを暗号化し、分析中にデータを復号するためのアクセスを AWS Clean Rooms サービスプリンシパルに付与します。kms:EncryptionContext:aws:cleanrooms:intermediateTableArn 条件は、キーを使用できる中間テーブルを制限します。このaws:SourceArn条件は、コラボレーション内の特定のメンバーシップ ARNs へのアクセスを制限することで、混乱した代理保護を提供します。

2 番目のステートメントでは、検証目的でキーを記述できます。

3 番目のステートメントでは、顧客のアカウント内の特定の IAM ロールにキー検証の実行を許可します AWS Clean Rooms。許可されるアクションは、DescribeKey、GenerateDataKey、および Decrypt です。アクセスの範囲は、 kms:ViaServiceおよび kms:CallerAccount条件を使用します。このロールは通常、 の操作に使用する IAM ロールです AWS Clean Rooms。

暗号化コンテキスト

AWS Clean Rooms は、中間テーブルデータを暗号化するときに次の暗号化コンテキストを使用します。

{ "aws:cleanrooms:intermediateTableArn": "arn:aws:cleanrooms:us-east-1:123456789012:membership/membership-id/intermediatetable/intermediate-table-id" }

すべての AWS KMS オペレーションは中間テーブル ARN で CloudTrail に記録され、暗号化または復号呼び出しごとにトリガーされたリソースの明確な監査証跡を提供します。キーポリシーで kms:EncryptionContext条件キーを使用して、キーを使用できる中間テーブルを制限できます。