Amazon Location Service の保管中のデータ暗号化
Amazon Location Service はデフォルトで暗号化を提供し、AWS が所有する暗号化キーを使用して顧客の機密の保管中のデータを保護します。
-
AWS所有キー — Amazon Location はデフォルトでこれらのキーを使用して、個人を特定できるデータを自動的に暗号化します。AWS が所有するキーを表示、管理、使用したり、その使用を監査したりすることはできません。ただし、データを暗号化するキーを保護するために何らかの措置を講じたり、プログラムを変更したりする必要はありません。詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS所有キー」を参照してください。
保管中のデータをデフォルトで暗号化することで、機密データの保護におけるオーバーヘッドと複雑な作業を減らすのに役立ちます。同時に、セキュリティを重視したアプリケーションを構築して、暗号化のコンプライアンスと規制の厳格な要件を満たすことができます。
この暗号化層を無効にしたり、代替の暗号化タイプを選択したりすることはできませんが、トラッカーとジオフェンスコレクションのリソースを作成するときにカスタマー管理キーを選択することで、既存の AWS 所有の暗号化キーに 2 番目の暗号化層を追加できます。
-
カスタマーマネージドキー — Amazon Location では、顧客が作成、所有、管理する対称的な顧客管理キーを使用して、既存の AWS 所有の暗号化にさらに暗号化層を追加することができます。この暗号化層はユーザーが完全に制御できるため、次のようなタスクを実行できます。
-
キーポリシーの策定と維持
-
IAM ポリシーとグラントの策定と維持
-
キーポリシーの有効化と無効化
-
キー暗号化マテリアルのローテーション
-
タグの追加
-
キーエイリアスの作成
-
キー削除のスケジュール設定
詳細については、「AWS Key Management Service デベロッパーガイド」の「カスタマーマネージドキー」を参照してください。
-
次の表は、Amazon Location が個人を特定できるデータをどのように暗号化するかをまとめたものです。
| データ型 | AWS 所有のキー暗号化 | カスタマーマネージドキーの暗号化 (オプション) |
|---|---|---|
Positionデバイス位置の詳細 を含むポイントジオメトリ。 |
有効 | 有効 |
PositionProperties位置の更新に関連付けられたキーと値のペアのセット。 |
有効 | 有効 |
GeofenceGeometryジオフェンスされたエリアを表すポリゴンジオフェンスジオメトリ。 |
有効 | 有効 |
DeviceIdデバイス位置更新をトラッカーリソースにアップロードする際に指定されたデバイス識別子。 |
有効 | サポートされていません |
GeofenceIdジオフェンスジオメトリ、または特定のジオフェンスコレクション内のジオフェンスのバッチを格納するときに指定される識別子。 |
有効 | サポートされていません |
注記
Amazon Location では、個人を特定できるデータを無料で保護するために、AWS 所有キーを使用して保管中の暗号化を自動的に有効にします。
ただし、カスタマーマネージドキーの使用には AWS KMS 料金が適用されます。料金の詳細については、「AWS Key Management Service 料金
AWS KMS の詳細については、「AWS Key Management Service とは」を参照してください。
AWS KMS で Amazon Location Service グラントを使用する方法
Amazon AppIntegrations には、カスタマー管理キーを使用するためのグラントが必要です。
カスタマーマネージドキーで暗号化された トラッカーリソース または ジオフェンスコレクション を作成すると、Amazon Location はユーザーに代わって CreateGrant リクエストを AWS KMS に送信してグラントを作成します。AWS KMS の許可は、顧客のアカウントの KMS キーへのアクセス権を Amazon Location に付与するために使用されます。
このグラントは、Amazon Location が、以下の内部オペレーションでカスタマーマネージドキーを使用するために必要です。
-
DescribeKey クエストを AWS KMS に送信して、トラッカーまたはジオフェンスコレクションの作成時に入力した対称 KMS キー ID が有効であることを確認します。
-
GenerateDataKeyWithoutPlaintext を AWS KMS に送信して、カスタマーマネージドキーで暗号化されたデータキーを生成します。
-
暗号化されたデータキーを復号して、それらのキーによるデータを暗号化できるようにするには、Decrypt リクエストを AWS KMS に送信します。
グラントへのアクセスの取り消しや、カスタマーマネージドキーに対するサービスのアクセスの取り消しは、いつでもできます。これを行うと、Amazon Location はカスタマーマネージドキーによって暗号化されたすべてのデータにアクセスできなくなり、そのデータに依存しているオペレーションが影響を受けます。例えば、Amazon Location がアクセスできない暗号化されたトラッカーから デバイスの位置を取得 しようとすると、操作によって AccessDeniedException エラーが返されます。
カスタマーマネージドキーを作成する
対称カスタマーマネージドキーを作成するには、AWS マネジメントコンソール または AWS KMS API を使用します。
対称カスタマーマネージドキーを作成するには
「AWS Key Management Service デベロッパーガイド」にある「対称カスタマーマネージドキーの作成」ステップに従います。
キーポリシー
キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。詳細については、「AWS Key Management Service デベロッパーガイド」の「カスタマーマネージドキーへのアクセスの管理」を参照してください。
Amazon Location リソースでカスタマーマネージドキーを使用するには、キーポリシーで次の API オペレーションを許可する必要があります。
-
kms:CreateGrant- カスタマーマネージドキーに許可を追加します。この権限は、指定された KMS キーへのアクセスを制御します。これにより、必要なグラントオペレーションに対し Amazon Location がアクセスできるようにします。詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS KMS でのグラント」を参照してください。これにより、Amazon Location で次のことが可能になります。
-
GenerateDataKeyWithoutPlainTextを呼び出して、暗号化されたデータキーを生成して保存します。データキーは暗号化にすぐには使用されないからです。 -
Decryptを呼び出して、保存された暗号化データキーを使用して暗号化データにアクセスします。 -
退職するプリンシパルを設定して、
RetireGrantにサービスがそれを許可するようにします。
-
-
kms:DescribeKey— カスタマーマネージドキーの詳細を提供し、サービスがキーを検証できるようにします。
Amazon Location に追加できるポリシーステートメントの例を以下に示します。
"Statement" : [ { "Sid" : "Allow access to principals authorized to use Amazon Location", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "geo.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 デベロッパーガイド」を参照してください。
キーアクセスのトラブルシューティングに関する詳細については、「AWS Key Management Service デベロッパーガイド」を参照してください。
Amazon Location のカスタマーマネージドキーの指定
カスタマーマネージドキーは、以下のリソースの第 2 レイヤー暗号化として指定できます。
リソースを作成する場合、KMS ID を入力してデータキーを指定できます。Amazon Location は、リソースに保存されている識別可能な個人データを暗号化するために使用します。
-
KMS ID — AWS KMS カスタマーマネージドキーの キー識別子。キー ID、キー ARN、エイリアス名、またはエイリアス ARN を入力します。
Amazon Location Service の暗号化コンテキスト
暗号化コンテキストは、データに関する追加のコンテキスト情報が含まれたキーバリューペアのオプションのセットです。
AWS KMS は、暗号化コンテキストを追加の認証済みデータとして使用して、認証済み暗号化をサポートします。データの暗号化リクエストに暗号化コンテキストを組み込むと、AWS KMS は暗号化コンテキストを暗号化後のデータにバインドします。データを復号化するには、そのリクエストに (暗号化時と) 同じ暗号化コンテキストを含めます。
Amazon Location Service の暗号化コンテキスト
Amazon Location は、すべての AWS KMS 暗号化操作で同じ暗号化コンテキストを使用します。キーはaws:geo:arn、値はリソース Amazon リソースネーム (ARN) です。
"encryptionContext": { "aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:geofence-collection/SAMPLE-GeofenceCollection" }
モニタリングに暗号化コンテキストを使用する
対称カスタマーマネージドキーを使用してトラッカーまたはジオフェンスコレクションを暗号化する場合は、監査レコードとログで暗号化コンテキストを使用して、カスタマーマネージドキーがどのように使用されているかを特定することもできます。暗号化コンテキストは、AWS CloudTrail または Amazon CloudWatch Logs によって生成されたログにも表示されます。
暗号化コンテキストを使用してカスタマーマネージドキーへのアクセスを制御する
conditions が対称カスタマーマネージドキーへのアクセスを制御するための条件として、キーポリシーと IAM ポリシー内の暗号化コンテキストを使用することもできます。グラントに暗号化コンテキストの制約を使用することもできます。
Amazon Location は、権限で暗号化コンテキスト制約を使用して、アカウントまたはリージョン内のカスタマーマネージドキーへのアクセスを制御します。グラントの制約では、指定された暗号化コンテキストの使用をグラントが許可するオペレーションが必要です。
次に、特定の暗号化コンテキストのカスタマーマネージドキーへのアクセスを付与するキーポリシーステートメントの例を示します。このポリシーステートメントの条件では、暗号化コンテキストを指定する暗号化コンテキスト制約がグラントに必要です。
{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:tracker/SAMPLE-Tracker" } } }
Amazon Location Service の暗号化キーを監視する
Amazon Location Service リソースで AWS KMS カスタマーマネージドキーを使用すると、AWS CloudTrail または Amazon CloudWatch Logs を使用して、Amazon Location が AWS KMS に送信するリクエストを追跡できます。
次の例は、カスタマーマネージドキーで暗号化されたデータにアクセスするために Amazon Location によって呼び出される KMS オペレーションを監視する、CreateGrant、GenerateDataKeyWithoutPlainText、Decrypt、および DescribeKey の AWS CloudTrail イベントです。
詳細
次のリソースは、保管時のデータ暗号化についての詳細を説明しています。
-
AWS Key Management Service の基本概念の詳細については、「AWS Key Management Service デベロッパーガイド」を参照してください。
-
詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS Key Management Service のセキュリティのベストプラクティス」を参照してください。