AWS Verified Access の保管時のデータ暗号化 - AWS 検証済みアクセス

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

AWS Verified Access の保管時のデータ暗号化

AWS Verified Access は、 AWS 所有の KMS キーを使用して、デフォルトで保管中のデータを暗号化します。デフォルトで保管中のデータを暗号化すると、機密データの保護に伴う運用上のオーバーヘッドや複雑さを軽減できます。同時に、暗号化のコンプライアンスと規制の厳格な要件を満たす、安全なアプリケーションを構築することもできます。以下のセクションでは、Verified Access が保管中のデータ暗号化に KMS キーを使用する方法について詳しく説明します。

Verified Access と KMS キー

AWS 所有キー

Verified Access では、KMS キーを使用して、個人を特定できる情報 (PII) を自動的に暗号化します。これはデフォルトで発生し、AWS が所有するキーの使用を自分で表示、管理、使用、または監査することはできません。ただし、データを暗号化するキーを保護するための行動やプログラムを操作したり変更したりする必要はありません。詳細については、AWS Key Management Service デベロッパーガイドの「AWS 所有キー」を参照してください。

この暗号化レイヤーを無効にしたり、代替の暗号化タイプを選択したりすることはできませんが、Verified Access リソースを作成するときにカスタマーマネージドキーを選択することで、既存の AWS 所有の暗号化キーに 2 番目の暗号化レイヤーを追加できます。

カスタマーマネージドキー

Verified Access では、お客様が作成して管理する対称カスタマーマネージドキーを使用して、既存のデフォルトの暗号化に 2 番目の暗号化レイヤーを追加することができます。この暗号化レイヤーはユーザーが完全に制御できるため、次のようなタスクを実行できます。

  • キーポリシーの策定と維持

  • IAM ポリシーとグラントの策定と維持

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

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

  • タグを追加する

  • キーエイリアスの作成

  • 削除のためのキースケジューリング

詳細については、「AWS Key Management Service デベロッパーガイド」の「カスタマーマネージドキー」を参照してください。

注記

Verified Access は AWS 、所有キーを使用して保管時の暗号化を自動的に有効にし、個人を特定できるデータを無償で保護します。

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

個人を特定できる情報

次の表では、Verified Access が使用する個人を特定できる情報 (PII) と、その暗号化方法をまとめます。

データ型 AWS 所有キーの暗号化 カスタマーマネージドキーの暗号化 (オプション)
Trust provider (user-type)

ユーザータイプの信頼プロバイダーには、AuthorizationEndpoint、UserInfoEndpoint、ClientId、ClientSecret などの OIDC オプションが含まれており、これらは PII と見なされます。

有効 有効
Trust provider (device-type)

デバイスタイプの信頼プロバイダーには PII と見なされる TenantID が含まれます。

有効 有効
Group policy

Verified Access グループの作成または変更時に提供されます。アクセス要求を承認するためのルールが含まれています。ユーザー名やメールアドレスなどの PII が含まれる場合があります。

有効 有効
Endpoint policy

Verified Access エンドポイントの作成または変更時に提供されます。アクセス要求を承認するためのルールが含まれています。ユーザー名やメールアドレスなどの PII が含まれる場合があります。

有効 有効

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

Verified Access では、カスタマーマネージドキーを使用するためのグラントが必要です。

カスタマーマネージドキーで暗号化された Verified Access リソースを作成すると、Verified Access は CreateGrant リクエストを送信してユーザーに代わって許可を作成します AWS KMS。の権限 AWS KMS は、Verified Access にアカウントのカスタマーマネージドキーへのアクセスを許可するために使用されます。

Verified Access では、以下の内部オペレーションでカスタマーマネージドキーを使用するためにグラントが必要です。

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

  • RetireGrant リクエストを に送信 AWS KMS して、許可を削除します。

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

Verified Access でカスタマーマネージドキーを使用する

対称カスタマーマネージドキーを作成するには AWS マネジメントコンソール、、、または AWS KMS APIsを使用します。「 AWS Key Management Service デベロッパーガイド」の「対称暗号化キーの作成」の手順に従います。

キーポリシー

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

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

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

    これにより、Verified Access が以下を実行できるようになります。

    • GenerateDataKeyWithoutPlainText を呼び出して暗号化されたデータキーを生成して保存します。データキーは暗号化にすぐには使用されないからです。

    • Decrypt を呼び出して、保存された暗号化データキーを使用して暗号化データにアクセスします。

    • 廃止するプリンシパルを設定して、サービスがRetireGrantを実行できるようにします。

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

  • kms:GenerateDataKey — Verified Access がキーを使用してデータを暗号化できるようにします。

  • kms:Decrypt — Verified Access が暗号化されたデータを復号できるようにします。

以下は、Verified Access で使用できるキーポリシーの例です。

"Statement" : [ { "Sid" : "Allow access to principals authorized to use Verified Access", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "verified-access.region.amazonaws.com", "kms:CallerAccount" : "111122223333" } }, { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:*" ], "Resource": "arn:aws:kms:region:111122223333:key/key_ID" }, { "Sid" : "Allow read-only access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" } ]

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

Verified Access リソースのカスタマーマネージドキーを指定する

カスタマーマネージドキーを指定して、以下のリソースに 2 番目の暗号化レイヤを提供できます。

を使用してこれらのリソースを作成する場合は AWS マネジメントコンソール、「追加の暗号化 -- オプション」セクションでカスタマーマネージドキーを指定できます。プロセス中に、暗号化設定のカスタマイズ (詳細) チェックボックスを選択し、使用する AWS KMS キー ID を入力します。これは既存のリソースを変更する場合や、 AWS CLIを使用して行うこともできます。

注記

上記のリソースのいずれかに追加の暗号化を提供しているカスタマーマネージドキーが失われた場合、そのリソースの設定値にはアクセスできなくなります。ただし、リソースは、 AWS マネジメントコンソール または を使用して新しいカスタマーマネージドキーを適用し AWS CLI、設定値をリセットすることで変更できます。

AWS Verified Access 暗号化コンテキスト

暗号化コンテキストは、データに関する追加のコンテキスト情報を含むキーと値のペアのオプションセットです。 AWS KMS は、暗号化コンテキストを追加の認証済みデータとして使用して、認証済み暗号化をサポートします。データを暗号化するリクエストに暗号化コンテキストを含めると、 は暗号化コンテキストを暗号化されたデータに AWS KMS バインドします。データを復号化するには、そのリクエストに (暗号化時と) 同じ暗号化コンテキストを含めます。

AWS Verified Access 暗号化コンテキスト

Verified Access は、すべての AWS KMS 暗号化オペレーションで同じ暗号化コンテキストを使用します。キーは で、aws:verified-access:arn値はリソース Amazon リソースネーム (ARN) です。Verified Access リソースの暗号化コンテキストは次のとおりです。

Verified Access 信頼プロバイダー

"encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:region:111122223333:VerifiedAccessTrustProviderId" }

Verified Access グループ

"encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:region:111122223333:VerifiedAccessGroupId" }

Verified Access エンドポイント

"encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:region:111122223333:VerifiedAccessEndpointId" }

AWS Verified Access の暗号化キーのモニタリング

AWS Verified Access リソースでカスタマーマネージド KMS キーを使用すると、 AWS CloudTrailを使用して Verified Access が送信するリクエストを追跡できます AWS KMS。

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

CreateGrant

カスタマーマネージドキーを使用してリソースを暗号化すると、Verified Access はユーザーに代わって AWS アカウント内のキーにアクセスする CreateGrant 要求を送信します。Verified Access が作成するグラントは、カスタマーマネージドキーに関連付けられているリソースに固有のものです。

以下のイベント例は、CreateGrant オペレーションを記録したものです。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T16:27:12Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T16:41:42Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "operations": [ "Decrypt", "RetireGrant", "GenerateDataKey" ], "keyId": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae", "constraints": { "encryptionContextSubset": { "aws:verified-access:arn": "arn:aws:ec2:ca-central-1:111122223333:verified-access-trust-provider/vatp-0e54f581e2e5c97a2" } }, "granteePrincipal": "verified-access.ca-central-1.amazonaws.com", "retiringPrincipal": "verified-access.ca-central-1.amazonaws.com" }, "responseElements": { "grantId": "e5a050fff9893ba1c43f83fddf61e5f9988f579beaadd6d4ad6d1df07df6048f", "keyId": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" }, "requestID": "0faa837e-5c69-4189-9736-3957278e6444", "eventID": "1b6dd8b8-cbee-4a83-9b9d-d95fa5f6fd08", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
RetireGrant

Verified Access では、リソースを削除するときに、RetireGrant オペレーションを使用してグラントを削除します。

以下のイベント例は、RetireGrant オペレーションを記録したものです。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T16:42:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T16:47:53Z", "eventSource": "kms.amazonaws.com", "eventName": "RetireGrant", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": null, "responseElements": { "keyId": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" }, "additionalEventData": { "grantId": "b35e66f9bacb266cec214fcaa353c9cf750785e28773e61ba6f434d8c5c7632f" }, "requestID": "7d4a31c2-d426-434b-8f86-336532a70462", "eventID": "17edc343-f25b-43d4-bbff-150d8fff4cf8", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt

Verified Access は、保存されている暗号化データキーを使用して暗号化されたデータにアクセスするために Decrypt オペレーションを呼び出します。

以下のイベント例は、Decrypt オペレーションを記録したものです。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T17:19:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T17:47:05Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e", "encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:ca-central-1:111122223333:verified-access-trust-provider/vatp-00f20a4e455e9340f", "aws-crypto-public-key": "AkK+vi1W/acBKv7OR8p2DeUrA8EgpTffSrjBqNucODuBYhyZ3hlMuYYJz9x7CwQWZw==" } }, "responseElements": null, "requestID": "2e920fd3-f2f6-41b2-a5e7-2c2cb6f853a9", "eventID": "3329e0a3-bcfb-44cf-9813-8106d6eee31d", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Verified Access は DescribeKey オペレーションを使用して、リソースに関連付けられているカスタマーマネージドキーがアカウントおよびリージョンに存在するかどうかを確認します。

以下のイベント例は、DescribeKey オペレーションを記録したものです。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T17:19:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T17:46:48Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" }, "responseElements": null, "requestID": "5b127082-6691-48fa-bfb0-4d40e1503636", "eventID": "ffcfc2bb-f94b-4c00-b6fb-feac77daff2a", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
GenerateDataKey

以下のイベント例は、GenerateDataKey オペレーションを記録したものです。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T17:19:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T17:46:49Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:ca-central-1:111122223333:verified-access-trust-provider/vatp-00f20a4e455e9340f", "aws-crypto-public-key": "A/ATGxaYatPUlOtM+l/mfDndkzHUmX5Hav+29IlIm+JRBKFuXf24ulztmOIsqFQliw==" }, "numberOfBytes": 32, "keyId": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" }, "responseElements": null, "requestID": "06535808-7cce-4ae1-ab40-e3afbf158a43", "eventID": "1ce79601-5a5e-412c-90b3-978925036526", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }