适用于 Amazon Location Service - Amazon Location Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 Amazon Location Service

默认情况下,Amazon Location Service 提供加密,使用AWS自有加密密钥保护敏感的客户静态数据。

  • AWS自有密钥 — 默认情况下,Amazon Location 使用这些密钥自动加密个人身份数据。您无法查看、管理或使用AWS拥有的密钥,或者审计其使用情况。但是,无需执行任何操作或更改任何计划即可保护用于加密数据的密钥。有关更多信息,请参阅AWS Key Management Service开发者指南中的AWS自有密钥

默认情况下,静态数据加密有助于减少保护敏感数据时涉及的操作开销和复杂性。同时,它使您能够构建符合严格加密合规性和法规要求的安全应用程序。

虽然您无法禁用此加密层或选择其他加密类型,但可以在创建跟踪器和地理围栏集合资源时选择客户管理的密钥,在现有AWS自有加密密钥上添加第二层加密:

  • 客户管理密钥 — Amazon Location 支持使用您创建、AWS拥有和管理的对称客户托管密钥,在现有自有加密的基础上添加第二层加密。由于您可以完全控制此加密层,因此您可以执行以下任务:

    • 建立和维护关键政策

    • 建立和维护 IAM 策略和授权

    • 启用和禁用密钥策略

    • 轮换密钥加密材料

    • 添加标签

    • 创建密钥别名

    • 计划删除密钥

    有关更多信息,请参阅AWS Key Management Service开发者指南中的客户管理密钥

下表汇总了 Amazon Loction 如何加密个人身份数据。

数据类型 AWS自有密钥加密 客户管理的密钥加密(可选)
Position

包含设备位置详细信息的点几何形状。

Enabled Enabled
PositionProperties

一组与位置更新关联的键值对。

Enabled Enabled
GeofenceGeometry

代表地理围栏区域的多边形地理围栏几何

Enabled Enabled
DeviceId

将设备位置更新上传到跟踪器资源时指定的设备标识符。

Enabled 不支持
GeofenceId

存储地理围栏几何图形或给定地理围栏集合中的一批地理围栏时指定的标识符。

Enabled 不支持
注意

Amazon Location 使用AWS自有密钥自动启用静态加密,免费保护个人身份数据。

但是,使用客户托管密钥会AWS KMS收费。有关定价的更多信息,请参阅定AWS Key Management Service价

有关的更多信息AWS KMS,请参阅什么是AWS Key Management Service?

亚马逊Location Service 如何使用补助金AWS KMS

Amazon Loction 需要授权,才能使用客户托管式密钥。

当您创建使用客户托管密钥加密的跟踪资源地理围栏集合时,Amazon Loc ation 会通过向您发送CreateGrant请求来代表您创建授权AWS KMS。中的授权AWS KMS用于授予 Amazon Location Location 访问客户账户中的 KMS 密钥的权限。

Amazon Location Location Location Location 要求授权,才能将您的

  • 向发送DescribeKey请求AWS KMS以验证在创建跟踪器或地理围栏集合时输入的对称客户管理的 KMS 密钥 ID 是否有效。

  • 向发送GenerateDataKeyWithoutPlaintext请求AWS KMS以生成由您的客户托管密钥加密的数据密钥。

  • Decrypt 请求发送到 AWS KMS,以解密加密的数据密钥,以使它们能够用于加密您的数据。

您可以随时撤消针对授权的访问权限,也可以移除服务访问客户托管密钥的权限。如果您这样做,Amazon Location 将无法访问由客户托管的密钥加密的任何数据,这会影响依赖于该数据的操作。例如,如果您尝试从 Amazon Location 无法访问的加密跟踪器获取设备位置,则该操作将返回AccessDeniedException错误。

创建客户托管密钥

您可以使用AWS Management Console、或AWS KMS API 创建对称的客户托管密钥。

创建对称的客户托管式密钥

按照AWS Key Management Service开发者指南创建对称客户管理密钥的步骤进行操作。

密钥策略

密钥策略控制对客户托管式密钥的访问。每个客户托管式密钥必须只有一个密钥策略,其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管式密钥时,可以指定密钥策略。有关更多信息,请参阅《AWS Key Management Service开发者指南》中的 “管理对客户管理密钥的访问权限”。

要将您的客户托管式密钥与 Amazon Location Location 资源一起使用,密钥策略中必须允许以下 API 操作:

  • kms:CreateGrant— 向客户托管式密钥添加授权。授予对指定 KMS 密钥的控制访问权限,该密钥允许访问 Amazon Location 所需的授予操作。有关使用补助金的更多信息,请参阅AWS Key Management Service开发者指南

    这允许Amazon Location 执行以下操作:

    • GenerateDataKeyWithoutPlainText用生成加密的数据密钥并将其存储,因为数据密钥不会立即用于加密。

    • Decrypt用使用存储的加密数据密钥访问加密数据。

    • 设置即将退休的校长以允许该服务RetireGrant.

  • kms:DescribeKey— 提供客户托管的密钥详细信息,以允许 Amazon Location Location 验证密钥。

以下是您可以为 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 指定客户托管密钥

您可以将客户管理的密钥指定为以下资源的第二层加密:

创建资源时,您可以通过输入 KMS ID 来指定数据密钥,Amazon Location 使用该密钥来加密资源存储的可识别个人数据。

  • KMS ID —AWS KMS 客户管理密钥的密钥标识符。输入密钥 ID、密钥 ARN、别名名称户或别名 ARN。

AmazLocation Service ation S

加密上下文是一组可选的键值对,其中包含有关数据的其他上下文信息。

AWS KMS使用加密上下文作为额外经过身份验证的数据来支持经过身份验证的加密。当您在加密数据的请求中包含加密上下文时,会将加密上下文AWS KMS绑定到加密的数据。要解密数据,请在请求中包含相同的加密上下文。

亚马逊Location Service 加密上下文

Amazon Location 在所有AWS KMS加密操作中使用相同的加密上下文aws:geo:arn,其中密钥为,值为资源亚马逊资源名称 (ARN)。

"encryptionContext": { "aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:geofence-collection/SAMPLE-GeofenceCollection" }

使用加密上下文进行监控

当您使用对称的客户管理密钥对跟踪器或地理围栏集合进行加密时,您还可以在审计记录和日志中使用加密上下文来识别客户管理密钥的使用情况。加密上下文也出现在由AWS CloudTrail Amazon 日志生成的 CloudWatch 日志中。

使用加密上下文控制对客户托管式密钥的访问

您可以使用密钥策略和 IAM 策略中的加密上下文conditions来控制对称客户托管的密钥的访问。您还可以在授权中使用加密上下文约束。

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

当您将AWS KMS客户管理的密钥与亚马逊Location Service 资源一起使用时,您可以使用AWS CloudTrailAmazon CloudWatch Lo cation 来跟踪亚马逊位置发送给的请求AWS KMS。

以下示例是CreateGrant、、GenerateDataKeyWithoutPlainTextDescribeKey监控 Amazon Location 为访问由您的客户托管密钥加密的数据而调用的 KMS 操作AWS CloudTrail的事件:Decrypt

CreateGrant

当您使用AWS KMS客户管理的密钥加密您的跟踪器或地理围栏收集资源时,Amazon Location 会代表您发送访问您AWS账户中的 KMS 密钥的CreateGrant请求。Amazon Location 创建的授权特定于与AWS KMS客户托管密钥相关的资源。此外,当您删除资源时,Amazon Location 使用该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": "geo.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": { "retiringPrincipal": "geo.region.amazonaws.com", "operations": [ "GenerateDataKeyWithoutPlaintext", "Decrypt", "DescribeKey" ], "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "granteePrincipal": "geo.region.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE" }, "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" }
GenerateDataKeyWithoutPlainText

当您为跟踪器或地理围栏收集资源启用AWS KMS客户管理的密钥时,Amazon Location 会创建一个唯一的表格密钥。它向发送一个GenerateDataKeyWithoutPlainText请求AWS KMS,指定资源的AWS KMS客户管理密钥。

以下示例事件记录了该GenerateDataKeyWithoutPlainText操作:

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "geo.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKeyWithoutPlaintext", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:geofence-collection/SAMPLE-GeofenceCollection" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "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", "sharedEventID": "57f5dbee-16da-413e-979f-2c4c6663475e" }
Decrypt

当您访问加密的跟踪器或地理围栏集合时,Amazon Location 会调用该Decrypt操作以使用存储的加密数据密钥访问加密数据。

以下示例事件记录了该Decrypt操作:

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "geo.amazonaws.com" }, "eventTime": "2021-04-22T17:10:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:geofence-collection/SAMPLE-GeofenceCollection" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "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", "sharedEventID": "dc129381-1d94-49bd-b522-f56a3482d088" }
DescribeKey

Amazon Location 使用该DescribeKey操作来验证账户和区域中是否存在与您的跟踪器或地理围栏集合相关的AWS KMS客户管理密钥。

以下示例事件记录了该DescribeKey操作:

{ "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": "geo.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "keyId": "00dd0db0-0000-0000-ac00-b0c000SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "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" }

了解更多信息

以下资源提供有关静态数据加密的更多信息。