データ暗号化 - AWS HealthImaging

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

データ暗号化

AWS HealthImaging では、クラウドに保管中のデータにセキュリティレイヤーを追加でき、スケーラブルで効率的な暗号化機能を提供しています。具体的には次のとおりです。

  • ほとんどの AWS サービスで利用可能な保管時のデータの暗号化機能

  • 暗号化キー AWS を管理するか AWS Key Management Service、独自のキーを完全に制御するかを選択できる、柔軟なキー管理オプション。

  • AWS 所有の AWS KMS 暗号化キー

  • Amazon SQS に対するサーバー側の暗号化 (SSE) を使用した、機密データを送信するための暗号化メッセージキュー

さらに、 は、暗号化とデータ保護を、お客様が開発またはデプロイする AWS のサービスと統合するための APIs AWS を提供します。

カスタマーマネージドキーの作成

AWS Management Console または AWS KMS APIs を使用して、対称カスタマーマネージドキーを作成できます。詳細については、「AWS Key Management Service デベロッパーガイド」の「対称暗号化 KMS キーを作成する」を参照してください。

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

HealthImaging リソースでカスタマーマネージドキーを使用するには、キーポリシーで kms:CreateGrant オペレーションを許可する必要があります。これにより、指定した KMS キーへのアクセスを制御するカスタマーマネージドキーへの許可が付与され、ユーザーは HealthImaging で必要な許可オペレーションにアクセスできるようになります。詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMSの許可」を参照してください。

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

  • kms:DescribeKey は、キーの検証に必要なカスタマーマネージドキーの詳細を提供します。これはすべてのオペレーションに必要です。

  • kms:GenerateDataKey は、すべての書き込み操作で保存中の暗号化リソースにアクセスできるようにします。

  • kms:Decrypt は暗号化されたリソースの読み取りまたは検索操作へのアクセスを提供します。

  • kms:ReEncrypt* はリソースを再暗号化するためのアクセスを提供します。

以下は、そのキーで暗号化されたデータストアを、ユーザーが HealthImaging に作成して操作できるようにするポリシーステートメントの例です。

{ "Sid": "Allow access to create data stores and perform CRUD and search in HealthImaging", "Effect": "Allow", "Principal": { "Service": [ "medical-imaging.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:kms-arn": "arn:aws:kms:us-east-1:123456789012:key/bec71d48-3462-4cdd-9514-77a7226e001f", "kms:EncryptionContext:aws:medical-imaging:datastoreId": "datastoreId" } } }

カスタマーマネージド KMS キーの使用に必要な IAM アクセス許可

カスタマーマネージド KMS キーを使用して AWS KMS 暗号化を有効にしたデータストアを作成する場合、HealthImaging データストアを作成するユーザーまたはロールのキーポリシーと IAM ポリシーの両方に必要なアクセス許可があります。

キーポリシーの詳細については、「AWS Key Management Service デベロッパーガイド」の「IAM ポリシーの有効化」を参照してください。

リポジトリを作成する IAM ユーザー、IAM ロール、または AWS アカウントには、kms:CreateGrant、、kms:GenerateDataKeykms:RetireGrantkms:Decrypt、、および のアクセス許可に加えてkms:ReEncrypt*、AWS HealthImaging に必要なアクセス許可が必要です。

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

HealthImaging で、カスタマーマネージド KMS キーを使用するには許可が必要です。カスタマーマネージド KMS キーで暗号化されたデータストアを作成すると、HealthImaging は CreateGrant リクエストを送信してユーザーに代わってグラントを作成します AWS KMS。の許可 AWS KMS は、顧客アカウントの KMS キーへのアクセスを HealthImaging に付与するために使用されます。

お客様の代わりに HealthImaging が作成する許可を廃止したり取り消したりしないでください。アカウントで AWS KMS キーを使用する許可を HealthImaging に付与する許可を取り消した、または廃止した場合、HealthImaging は、このデータへのアクセス、データストアにプッシュされた新しい画像リソースの暗号化、およびプルされた画像の復号化を行うことができなくなります。HealthImaging の許可を廃止または取り消すと、変更がすぐに適用されます。アクセス権限を取り消すには、許可を取り消すのではなく、データストアを削除します。データストアを削除すると、HealthImation がユーザーに代わって許可を廃止します。

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

CloudTrail を使用して、カスタマーマネージド KMS キーを使用するときに HealthImaging が AWS KMS ユーザーに代わって に送信するリクエストを追跡できます。CloudTrail ログのログエントリは、HealthImaging からのリクエストを明確に区別するため userAgent フィールドに medical-imaging.amazonaws.com を表示します。

次の例はCreateGrant、カスタマーマネージドキーによって暗号化されたデータにアクセスするために HealthImaging によって呼び出される AWS KMS オペレーションをモニタリングDescribeKeyするための GenerateDataKeyDecrypt、、 の CloudTrail イベントです。

以下は、CreateGrant を使用して HealthImaging に顧客提供の KMS キーへのアクセスを許可し、HealthImaging がその KMS キーを使用して保管中のすべての顧客データを暗号化できるようにする方法を示しています。

ユーザーは自分で許可を作成する必要はありません。HealthImaging は、CreateGrantリクエストを送信することで、ユーザーに代わってグラントを作成します AWS KMS。の許可 AWS KMS は、顧客アカウントの AWS KMS キーへのアクセスを HealthImaging に許可するために使用されます。

{ "Grants": [ { "Operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "DescribeKey" ], "KeyId": "arn:aws:kms:us-west-2:824333766656:key/2fe3c119-792d-4b99-822f-b5841e1181d1", "Name": "0a74e6ad2aa84b74a22fcd3efac1eaa8", "RetiringPrincipal": "AWS Internal", "GranteePrincipal": "AWS Internal", "GrantId": "0da169eb18ffd3da8c0eebc9e74b3839573eb87e1e0dce893bb544a34e8fbaaf", "IssuingAccount": "AWS Internal", "CreationDate": 1685050229.0, "Constraints": { "EncryptionContextSubset": { "kms-arn": "arn:aws:kms:us-west-2:824333766656:key/2fe3c119-792d-4b99-822f-b5841e1181d1" } } }, { "Operations": [ "GenerateDataKey", "CreateGrant", "RetireGrant", "DescribeKey" ], "KeyId": "arn:aws:kms:us-west-2:824333766656:key/2fe3c119-792d-4b99-822f-b5841e1181d1", "Name": "2023-05-25T21:30:17", "RetiringPrincipal": "AWS Internal", "GranteePrincipal": "AWS Internal", "GrantId": "8229757abbb2019555ba64d200278cedac08e5a7147426536fcd1f4270040a31", "IssuingAccount": "AWS Internal", "CreationDate": 1685050217.0, } ] }

以下の例は、GenerateDataKey を使用して、ユーザーがデータを暗号化するのに必要な許可を持っているか、データを保存する前に確認する方法を示しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEUSER", "arn": "arn:aws:sts::111122223333:assumed-role/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:aws:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-06-30T21:17:06Z", "mfaAuthenticated": "false" } }, "invokedBy": "medical-imaging.amazonaws.com" }, "eventTime": "2021-06-30T21:17:37Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "medical-imaging.amazonaws.com", "userAgent": "medical-imaging.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" }, "responseElements": null, "requestID": "EXAMPLE_ID_01", "eventID": "EXAMPLE_ID_02", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

次の例は、HealthImaging が Decrypt オペレーションを呼び出して、保管済みの暗号化されたデータキーを使用して暗号化されたデータにアクセスする方法を示しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEUSER", "arn": "arn:aws:sts::111122223333:assumed-role/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:aws:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-06-30T21:17:06Z", "mfaAuthenticated": "false" } }, "invokedBy": "medical-imaging.amazonaws.com" }, "eventTime": "2021-06-30T21:21:59Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "medical-imaging.amazonaws.com", "userAgent": "medical-imaging.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" }, "responseElements": null, "requestID": "EXAMPLE_ID_01", "eventID": "EXAMPLE_ID_02", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

次の例は、HealthImaging が DescribeKeyオペレーションを使用して、 AWS KMS カスタマー所有の AWS KMS キーが使用可能な状態であるかどうかを確認し、機能していない場合のユーザーのトラブルシューティングを支援する方法を示しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEUSER", "arn": "arn:aws:sts::111122223333:assumed-role/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:aws:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-07-01T18:36:14Z", "mfaAuthenticated": "false" } }, "invokedBy": "medical-imaging.amazonaws.com" }, "eventTime": "2021-07-01T18:36:36Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "medical-imaging.amazonaws.com", "userAgent": "medical-imaging.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" }, "responseElements": null, "requestID": "EXAMPLE_ID_01", "eventID": "EXAMPLE_ID_02", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

詳細

以下のリソースは、保管中のデータの暗号化に関する詳細を説明しており、「AWS Key Management Service デベロッパーガイド」にあります。