

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

# Amazon Location Service 中的安全
<a name="security"></a>

AWS 的云安全性的优先级最高。为了满足对安全性最敏感的组织的需求，我们打造了具有超高安全性的数据中心和网络架构。作为 AWS 的客户，您也可以从这些数据中心和网络架构受益。

安全性是 AWS 和您的共同责任。[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)将其描述为云的安全性和云*中**的*安全性：
+ **云的安全性** – AWS 负责保护在 AWS 云 中运行 AWS 服务的基础结构。AWS 还向您提供可安全使用的服务。第三方审核员定期测试和验证我们的安全性的有效性，作为 [AWS Compliance Programs](https://aws.amazon.com/compliance/programs/) 的一部分。要了解适用于 Amazon Location Service 的合规性计划，请参阅[按合规性计划提供的范围内 AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。
+ **云中的安全性**——您的责任由您使用的 AWS 服务决定。您还需要对其他因素负责，包括您的数据的敏感性、您公司的要求以及适用的法律法规。

该文档帮助您了解如何在使用 Amazon Location 时应用责任共担模式。以下主题说明如何配置 Amazon Location 以实现您的安全性和合规性目标。您还会了解如何使用其他 AWS 服务以帮助您监控和保护 Amazon Location 资源。

**Topics**
+ [Amazon Location Service 中的数据保护](data-protection.md)
+ [Amazon Location Service 中的事件响应](incident-response.md)
+ [Amazon Location Service 的合规性验证](compliance-validation.md)
+ [Amazon Location Service 中的韧性](disaster-recovery-resiliency.md)
+ [Amazon Location Service 中的基础设施安全性](infrastructure-security.md)
+ [AWS PrivateLink 适用于 Amazon 地点](privatelink-interface-endpoints.md)
+ [Amazon Location 中的配置和漏洞分析](vulnerability-analysis-and-management.md)
+ [防止跨服务混淆代理](cross-service-confused-deputy-prevention.md)
+ [Amazon Location Service 的最佳实践](best-practices.md)

# Amazon Location Service 中的数据保护
<a name="data-protection"></a>

AWS [责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)适用于 Amazon Location Service 中的数据保护。如该模式中所述，AWS 负责保护运行所有 AWS 云 的全球基础结构。您负责维护对托管在此基础结构上的内容的控制。您还负责您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息，请参阅[数据隐私常见问题](https://aws.amazon.com/compliance/data-privacy-faq/)。有关欧洲数据保护的信息，请参阅 *AWS Security Blog* 上的 [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 博客文章。

出于数据保护目的，建议您保护 AWS 账户 凭证并使用 AWS IAM Identity Center 或 AWS Identity and Access Management（IAM）设置单个用户。这样，每个用户只获得履行其工作职责所需的权限。还建议您通过以下方式保护数据：
+ 对每个账户使用多重身份验证（MFA）。
+ 使用 SSL/TLS 与 AWS 资源进行通信。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 使用 AWS CloudTrail 设置 API 和用户活动日记账记录。有关使用 CloudTrail 跟踪来捕获 AWS 活动的信息，请参阅《AWS CloudTrail 用户指南》**中的[使用 CloudTrail 跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解决方案以及 AWS 服务中的所有默认安全控制。
+ 使用高级托管安全服务（例如 Amazon Macie），它有助于发现和保护存储在 Amazon S3 中的敏感数据。
+ 如果在通过命令行界面或 API 访问 AWS 时需要经过 FIPS 140-3 验证的加密模块，请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息，请参阅[《美国联邦信息处理标准（FIPS）第 140-3 版》](https://aws.amazon.com/compliance/fips/)。

强烈建议您切勿将机密信息或敏感信息（如您客户的电子邮件地址）放入标签或自由格式文本字段（如**名称**字段）。这包括当您通过控制台、API、AWS CLI 或 AWS SDK 使用 Amazon Location 或其他 AWS 服务时。在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供网址，强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。



# 数据隐私
<a name="data-privacy"></a>

使用 Amazon Location Service，您可以保留对组织数据的控制权。Amazon Location 会删除客户元数据和账户信息，从而匿名化发送给数据提供程序的所有查询。

Amazon Location 不使用数据提供程序进行跟踪和地理围栏。这意味着您的敏感数据仍保留在您的 AWS 帐户中。这有助于保护敏感的位置信息（例如设施、资产和人员位置）免受第三方的侵害，保护用户隐私，并降低应用程序的安全风险。

有关更多信息，请参阅 [AWS 数据隐私常见问题解答](https://aws.amazon.com/compliance/data-privacy-faq/)。

# Amazon Location 的数据保留
<a name="data-retention"></a>

以下特征与 Amazon Location 如何收集和存储服务数据有关：
+ **Amazon Location Service 跟踪器** – 当您使用跟踪器 API 跟踪实体的位置时，可以存储其坐标。设备位置会存储 30 天，然后才会被服务删除。
+ **Amazon Location Service 地理围栏** – 当您使用地理围栏 API 定义感兴趣区域时，该服务会存储您提供的几何图形。必须明确删除它们。
**注意**  
删除您的 AWS 账户会删除其中的所有资源。有关更多信息，请参阅 [AWS 数据隐私常见问题解答](https://aws.amazon.com/compliance/data-privacy-faq/)。

# Amazon Location Service 中的静态数据加密
<a name="encryption-at-rest"></a>

Amazon Location Service 默认提供加密，以使用 AWS 自有的加密密钥保护敏感的静态客户数据。
+ **AWS 自有密钥** — Amazon Location 默认使用这些密钥来自动加密个人身份数据。您无法查看、管理或使用 AWS 自有密钥，也无法审核其使用情况。但是，无需采取任何措施或更改任何计划即可保护用于加密数据的密钥。有关更多信息，请参阅 *AWS Key Management Service 开发人员指南*中的 [AWS 自有密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)。

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

虽然您无法禁用此加密层或选择其他加密类型，但您可以在创建跟踪器和地理围栏收集资源时选择客户管理的密钥，从而在现有的 AWS 加密密钥上添加第二层加密：
+ **客户托管密钥** — Amazon Location 支持使用由您创建、拥有和管理的对称客户托管密钥，在现有 AWS 自有加密的基础上添加第二层加密。由于您可以完全控制这层加密，因此可以执行以下任务：
  + 制定和维护关键策略
  + 建立和维护 IAM 策略和授权
  + 启用和禁用密钥策略
  + 轮换加密材料
  + 添加 标签
  + 创建密钥别名
  + 计划删除密钥

  有关更多信息，请参阅 *AWS Key Management Service 开发人员指南*中的[客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

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


| 数据类型 | AWS 自有密钥加密 | 客户托管密钥加密（可选） | 
| --- | --- | --- | 
| Position包含[设备位置详细信息](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointTracking_DevicePosition.html)的造点几何体。 | 已启用 | 已启用 | 
| PositionProperties一组与[位置更新关联](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointTracking_DevicePosition.html)的键值对。 | 已启用 | 已启用 | 
| GeofenceGeometry表示地理围栏区域的多边形[地理围栏几何](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointGeofencing_GeofenceGeometry.html)。 | 已启用 | 已启用 | 
| DeviceId将[设备位置更新上传](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointTracking_DevicePositionUpdate.html)到跟踪器资源时指定的设备标识符。 | 已启用 | 不支持 | 
| GeofenceId在给定地理围栏集合中[存储地理围栏几何](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointGeofencing_PutGeofence.html)或[一批地理围栏](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointGeofencing_BatchPutGeofence.html)时指定的标识符。 | 已启用 | 不支持 | 

**注意**  
Amazon Location 使用 AWS 自有密钥自动启用静态加密，从而免费保护个人身份数据。  
但是，使用客户管理的密钥需要 AWS KMS 付费。有关定价的更多信息，请参阅 [AWS Key Management Service 定价](https://aws.amazon.com/kms/pricing/)。

有关的更多信息 AWS KMS，请参阅[什么是 AWS Key Management Service？](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 

## Amazon Location Service 如何使用补助金 AWS KMS
<a name="encryption-grant"></a>

Amazon Location 需要[授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)，才能使用客户托管密钥。

当您创建使用客户托管密钥加密的[追踪器资源](https://docs.aws.amazon.com/location/latest/developerguide/trackers.html)或[地理围栏集合](https://docs.aws.amazon.com/location/latest/developerguide/geofences.html)时，Amazon Location 会通过向发送[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)请求来代表您创建授权。 AWS KMS中的授权 AWS KMS 用于让 Amazon Location 访问客户账户中的 KMS 密钥。

Amazon Location 需要授权，才能将客户托管的密钥用于以下内部操作：
+ 向发送[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)请求， AWS KMS 以验证在创建跟踪器或地理围栏集合时输入的对称客户托管 KMS 密钥 ID 是否有效。
+ 向发送[GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)请求 AWS KMS 以生成由您的客户托管密钥加密的数据密钥。
+ 将 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 请求发送 AWS KMS 到以解密加密的数据密钥，以便它们可用于加密您的数据。

您可以随时撤销授予访问权限，或删除服务对客户托管密钥的访问权限。如果您这样做，Amazon Location 将无法访问由客户托管的密钥加密的任何数据，这会影响依赖于该数据的操作。例如，如果您尝试从 Amazon Location 无法访问的加密跟踪器中[获取设备位置](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointTracking_GetDevicePosition.html)，则该操作将返回 `AccessDeniedException` 错误。

## 创建客户托管密钥
<a name="create-key"></a>

 您可以使用 AWS 管理控制台、或，创建对称的客户托管密钥。 AWS KMS APIs

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

按照**《AWS Key Management Service 开发人员指南》中[创建对称的客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)的步骤进行操作。

**密钥策略**

密钥策略控制对客户自主管理型密钥的访问。每个客户托管式密钥必须只有一个密钥策略，其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管式密钥时，可以指定密钥策略。有关更多信息，请参阅 *AWS Key Management Service 开发人员指南*中的[管理对客户托管密钥的访问](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)。

要将客户托管密钥与 Amazon Location 资源结合使用，密钥政策中必须允许以下 API 操作：
+ `[kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)` – 向客户托管密钥添加授权。授予对指定 KMS 密钥的控制访问权限，从而允许访问[授予操作](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)，这些操作是 Amazon Location 所需的。有关[使用授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)的更多信息，请参阅 *AWS Key Management Service 开发人员指南*。

  这将允许 Amazon Location 执行以下操作：
  + 调用 `GenerateDataKeyWithoutPlainText` 生成加密的数据密钥并将其存储，因为数据密钥不会立即用于加密。
  + 调用 `Decrypt` 使用存储的加密数据密钥访问加密数据。
  + 设置停用委托人，以允许服务 `RetireGrant`。
+ `[kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)` – 提供客户托管式密钥详细信息以允许 Amazon 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" : "*"
    }
  ]
```

有关[在策略中指定权限](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)的更多信息，请参阅 *AWS Key Management Service 开发人员指南*。

有关[密钥访问故障排除](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html#example-no-iam)更多的信息，请参阅 *AWS Key Management Service 开发人员指南*。

## 指定 Amazon Location 的客户托管密钥
<a name="enable-custom-encryption"></a>

您可以指定客户托管密钥作为以下资源的第二层加密：
+ [创建跟踪器](start-create-tracker.md)
+ [开始使用 Amazon Location Service 地理围栏](geofence-gs.md)

创建资源时，您可以通过输入 **KMS ID** 来指定数据密钥，Amazon Location 使用该 ID 来加密资源存储的可识别个人数据。
+ **KMS ID** — AWS KMS 客户托管[密钥的密钥标识符](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)。输入密钥 ID、密钥 ARN、别名名称或别名 ARN。

## Amazon Location Service 加密上下文
<a name="location-encryption-context"></a>

[加密上下文](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context)是一组可选的键值对，包含有关数据的其他上下文信息。

AWS KMS 使用加密上下文作为[其他经过身份验证的数据](https://docs.aws.amazon.com/kms/latest/cryptographic-details/crypto-primitives.html)来支持经过[身份验证的加密](https://docs.aws.amazon.com/kms/latest/cryptographic-details/crypto-primitives.html)。当您在加密数据的请求中包含加密上下文时，会将加密上下文 AWS KMS 绑定到加密数据。要解密数据，您需要在请求中包含相同的加密上下文。

**Amazon Location Service 加密上下文**

Amazon Location 在所有 AWS KMS 加密操作中使用相同的加密上下文，其中密钥为`aws:geo:arn`，值为资源[亚马逊资源名称](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) (ARN)。

**Example**  

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

**使用加密上下文进行监控**

当您使用对称的客户托管密钥来加密您的跟踪器或地理围栏集合时，您还可以使用审计记录和日志中的加密上下文来识别客户托管密钥的使用情况。加密上下文还会显示在[AWS CloudTrail 或 Amazon Logs 生成的 CloudWatch 日志](#example-custom-encryption)中。

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

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

Amazon Location 在授权中使用加密上下文限制，以控制对您账户或区域中的客户管理密钥的访问。授权约束要求授权允许的操作使用指定的加密上下文。

**Example**  
以下是密钥策略声明示例，用于授予对特定加密上下文的客户托管密钥的访问权限。此策略声明中的条件要求授权具有指定加密上下文的加密上下文约束。  

```
{
    "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 的加密密钥
<a name="example-custom-encryption"></a>

当您将 AWS KMS 客户托管密钥与 Amazon Location Service 资源一起使用时，您可以使用[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)或 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 来跟踪亚马逊位置发送到的请求 AWS KMS。

以下示例是`CreateGrant`、`GenerateDataKeyWithoutPlainText``Decrypt`、和`DescribeKey`监控 Amazon Location 调用的 KMS 操作 AWS CloudTrail 的事件，以访问由您的客户托管密钥加密的数据：

------
#### [ CreateGrant ]

当您使用 AWS KMS 客户托管密钥加密您的追踪器或地理围栏收集资源时，Amazon Location 会代表您发送访问您账户中的 KMS 密钥的`CreateGrant`请求。 AWS 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"
}
```

------

## 了解详情
<a name="Learn-more-data-at-rest-encryption"></a>

以下资源提供有关静态数据加密的更多信息。
+ 有关 [AWS Key Management Service 基本概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)的更多信息，请参阅 **《AWS Key Management Service 开发人员指南》。
+ 有关[安全最佳实践的更多信息 AWS Key Management Service，请参](https://docs.aws.amazon.com/kms/latest/developerguide/kms-security.html)阅《*AWS Key Management Service 开发人员指南》*。

# Amazon Location Service 的传输中数据加密
<a name="encryption-in-transit"></a>

Amazon Location 使用传输层安全性协议 (TLS) 1.2 加密协议自动加密所有网络间数据，从而保护往返服务的过程中的传输中数据。发送到 Amazon Location Servic APIs e 的直接 HTTPS 请求使用[AWS 签名版本 4 算法](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-create-signed-request.html)进行签名，以建立安全连接。

# Amazon Location Service 中的事件响应
<a name="incident-response"></a>

 AWS非常重视安全性。作为 AWS 云[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)的一部分， AWS 管理满足大多数安全敏感组织要求的数据中心和网络架构。作为 AWS 客户，您有责任维护云端的安全。这意味着你可以从你有权访问的 AWS 工具和功能中控制你选择实施的安全性。

通过建立符合云端运行应用程序目标的安全基准，您可以检测出可以响应的偏差。由于安全事件响应可能是一个复杂的主题，因此我们鼓励您查看以下资源，以便更好地了解事件响应 (IR) 和您的选择对企业目标的影响：[AWS 安全事件响应指南、AWS 安全](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/aws-security-incident-response-guide.html)[最佳实践](https://aws.amazon.com/architecture/security-identity-compliance/?cards-all.sort-by=item.additionalFields.sortDate&cards-all.sort-order=desc)白皮书和[AWS 云采用框架 (AWS CAF](https://aws.amazon.com/cloud-adoption-framework/#Security_Perspective))。

# Amazon Location Service 中的日志记录和监控
<a name="security-logging-and-monitoring"></a>

记录和监控是事件响应的重要组成部分。它允许您建立安全基线来检测可以调查和响应的偏差。通过对 Amazon Location Service 实施日志记录和监控，您可以保持项目和资源的可靠性、可用性、性能。

AWS 提供了多种工具，可以帮助您记录和收集事件响应数据：

**AWS CloudTrail**  
Amazon Location Service 与 AWS CloudTrail集成，后者是一项记录用户、角色或 AWS 服务所执行操作的服务。这包括来自 Amazon Location Service 控制台的操作以及对 Amazon Location API 操作的编程调用。这些操作记录称为事件。有关更多信息，请参阅使用[记录和监控 Amazon Location Service AWS CloudTrail](https://docs.aws.amazon.com/location/latest/developerguide/cloudtrail.html)。

**Amazon CloudWatch**  
您可以使用亚马逊收集和分析 CloudWatch 与您的亚马逊定位服务账户相关的指标。您可以启用 CloudWatch 警报，以便在指标满足特定条件并达到指定阈值时通知您。当您创建警报时， CloudWatch会向您定义的 Amazon 简单通知服务发送通知。有关更多信息，请参阅 “[使用亚马逊监控亚马逊定位服务](https://docs.aws.amazon.com/location/latest/developerguide/cloudwatch.html)” CloudWatch。

**AWS Health 仪表板**  
使用 [AWS Health 控制面板](https://status.aws.amazon.com/)，您可以验证 Amazon Location Service 服务的状态。您还可以监控和查看有关可能影响 AWS 环境的任何事件或问题的历史数据。有关更多信息，请参阅 [AWS Health 用户指南](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html)。

# Amazon Location Service 的合规性验证
<a name="compliance-validation"></a>

要了解某个 AWS 服务是否在特定合规性计划范围内，请参阅[合规性计划范围内的 AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)，然后选择您感兴趣的合规性计划。有关常规信息，请参阅 [AWS 合规性计划](https://aws.amazon.com/compliance/programs/)、、。

您可以使用 AWS Artifact 下载第三方审计报告。有关更多信息，请参阅[在 AWS Artifact 中下载报告](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)、。

您在使用 AWS 服务 时的合规性责任由您的数据的敏感性、您公司的合规性目标以及适用的法律法规决定。有关您在使用 AWS 服务时的合规责任的更多信息，请参阅 [AWS 安全性文档](https://docs.aws.amazon.com/security/)。

# Amazon Location Service 中的韧性
<a name="disaster-recovery-resiliency"></a>

AWS 全球基础结构围绕 AWS 区域和可用区构建。AWS 区域提供多个在物理上独立且隔离的可用区，这些可用区与延迟率低、吞吐量高且冗余性高的网络连接在一起。利用可用区，您可以设计和操作在可用区之间无中断地自动实现失效转移的应用程序和数据库。与传统的单个或多个数据中心基础结构相比，可用区具有更高的可用性、容错性和可扩展性。

有关 AWS 区域和可用区的更多信息，请参阅 [AWS 全球基础结构](https://aws.amazon.com/about-aws/global-infrastructure/)。

除了 AWS 全球基础设施之外，Amazon Location 还提供多种特征，以帮助支持您的数据恢复能力和备份需求。

# Amazon Location Service 中的基础设施安全性
<a name="infrastructure-security"></a>

作为一项托管式服务，Amazon Location Service 受 AWS 全球网络安全保护。有关 AWS 安全服务以及 AWS 如何保护基础设施的信息，请参阅 [AWS 云安全性](https://aws.amazon.com/security/)。要按照基础设施安全最佳实践设计您的 AWS 环境，请参阅《安全性支柱 AWS Well‐Architected Framework》**中的[基础设施保护](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 发布的 API 调用通过网络访问 Amazon Location。客户端必须支持以下内容：
+ 传输层安全性协议（TLS）。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 具有完全向前保密（PFS）的密码套件，例如 DHE（临时 Diffie-Hellman）或 ECDHE（临时椭圆曲线 Diffie-Hellman）。大多数现代系统（如 Java 7 及更高版本）都支持这些模式。

# AWS PrivateLink 适用于 Amazon 地点
<a name="privatelink-interface-endpoints"></a>

使用 F AWS PrivateLink or Amazon Location，您可以在虚拟私有云（*亚马逊 VPC*）中配置接口 Amazon VPC 终端节点（接口终端节点）。这些终端节点可通过 VPN 直接从本地应用程序访问 Direct Connect，或者通过 [Amazon VPC AWS 区域 对等](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)互连以其他方式访问。使用 AWS PrivateLink 和接口端点，您可以简化应用程序与 Amazon Location 之间的私有网络连接。

VPC 中的应用程序无需公有 IP 地址即可与 Amazon Location 接口 VPC 端点进行通信来执行 Amazon Location 操作。接口终端节点由一个或多个弹性网络接口 (ENIs) 表示，这些接口从您的 Amazon VPC 中的子网中分配私有 IP 地址。通过接口端点向 Amazon Location 发出的请求仍留在 Amazon 网络上。您还可以通过 Direct Connect 或 AWS Virtual Private Network (Site-to-Site VPN) 从本地应用程序访问您的 Amazon VPC 中的接口终端节点。有关如何将 Amazon VPC 与本地网络连接的更多信息，请参阅 [Direct Connect User Guide](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 和《[AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) User Guide》。

有关接口端点的一般信息，请参阅《AWS PrivateLink 指南》**中的[接口 Amazon VPC 端点（AWS PrivateLink）](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

**Topics**
+ [适用于 Amazon Location Service 的 Amazon VPC 端点类型](#types-of-vpc-endpoints-for-al)
+ [使用 Amazon Location AWS PrivateLink Service 时的注意事项](#privatelink-considerations)
+ [为 Amazon Location Service 创建接口端点](#al-creating-vpc)
+ [从 Amazon Location 接口端点访问 Amazon Location API 操作](#accessing-apis-from-interface-endpoints)
+ [更新本地 DNS 配置](#updating-on-premises-dns-config)
+ [为 Amazon Location 创建 Amazon VPC 端点策略](#creating-vpc-endpoint-policy)

## 适用于 Amazon Location Service 的 Amazon VPC 端点类型
<a name="types-of-vpc-endpoints-for-al"></a>

您可以使用一种类型的亚马逊 VPC 终端节点来访问 Amazon Location Service：*接口终端节点*（使用 AWS PrivateLink）。**接口端点使用私有 IP 地址将请求从您的 Amazon VPC 内部、本地或另一个 AWS 区域 中的 Amazon VPC（通过使用 Amazon VPC 对等连接）路由到 Amazon Location。有关更多信息，请参阅 [What is Amazon VPC peering?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) 和 [Transit Gateway 与 Amazon VPC 对等连接](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/vpc-to-vpc-connectivity.html)。

接口端点与网关端点兼容。如果您在 Amazon VPC 中有现有网关端点，则可以在同一 Amazon VPC 中使用这两种类型的端点。

适用于 Amazon Location 的接口端点具有以下属性：
+ 您的网络流量仍留在 AWS 网络上
+ 使用 Amazon VPC 中的私有 IP 地址访问 Amazon Location Service
+ 允许从本地访问
+ 允许通过使用 Amazon VPC 对等互连从另一个 AWS 区域 Amazon VPC 终端节点进行访问或 AWS Transit Gateway
+ 需要支付接口端点费用

## 使用 Amazon Location AWS PrivateLink Service 时的注意事项
<a name="privatelink-considerations"></a>

亚马逊 VPC 注意事项 AWS PrivateLink 适用于亚马逊 Location Service。有关更多信息，请参阅《AWS PrivateLink 指南》**中的[接口端点注意事项](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)和 [AWS PrivateLink 限额](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html)。此外，以下限制将适用：

AWS PrivateLink 适用于 Amazon Location Service 不支持以下内容：
+ 传输层安全性协议（TLS）1.1
+ 私有域名系统和混合域名系统（DNS）服务

Amazon VPC 端点：
+ 不支持 [Amazon Location Service 地图 API](https://docs.aws.amazon.com/location/latest/APIReference/API_Operations_Amazon_Location_Service_Maps_V2.html) 操作，包括：`GetGlyphs`、`GetSprites` 和 `GetStyleDescriptor`
+ 不支持跨区域请求。确保在计划向 Amazon Location Service 发出 API 调用的同一区域中创建端点。
+ 仅通过 Amazon Route 53 支持 Amazon 提供的 DNS。如果您希望使用自己的 DNS，请使用条件 DNS 转发。有关更多信息，请参阅*《Amazon VPC 用户指南》*中的 [DHCP 选项集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。
+ 必须通过附加到 VPC 端点的安全组，允许端口 443 上来自 VPC 私有子网的传入连接。

对于您启用的每个 AWS PrivateLink 终端节点，您每秒最多可以提交 50,000 个请求。

**注意**  
 AWS PrivateLink 终端节点的网络连接超时不在 Amazon Location 错误响应的范围内，需要由连接到 AWS PrivateLink 终端节点的应用程序进行适当处理。

## 为 Amazon Location Service 创建接口端点
<a name="al-creating-vpc"></a>

您可以使用 Amazon VPC 控制台或 AWS Command Line Interface （AWS CLI）为 Amazon Location Service 创建接口端点。有关更多信息，请参阅《AWS PrivateLink 指南》**中的[创建接口端点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

共有六个不同的 VPC 端点，Amazon Location Service 提供的每项功能各一个。


| 类别 | 端点 | 
| --- | --- | 
| 地图 |  `com.amazonaws.region.geo.maps`  | 
| 地点 |  `com.amazonaws.region.geo.places`  | 
| Routes |  `com.amazonaws.region.geo.routes`  | 
| 地理围栏 | `com.amazonaws.region.geo.geofencing` | 
| 跟踪器 |  `com.amazonaws.region.geo.tracking`  | 
| 元数据 |  `com.amazonaws.region.geo.metadata`  | 

**例如：**

```
com.amazonaws.us-east-2.geo.maps
```

在创建端点后，您可以选择启用私有 DNS 主机名。创建 VPC 端点时，在 Amazon VPC 控制台中选择**启用私有 DNS 名称**即可启用。

如果为接口端点启用私有 DNS，则可使用其默认区域 DNS 名称向 Amazon Location Service 服务发出 API 请求。以下示例显示了默认区域 DNS 名称格式。
+ `maps.geo.region.amazonaws.com`
+ `places.geo.region.amazonaws.com`
+ `routes.geo.region.amazonaws.com`
+ `tracking.geo.region.amazonaws.com`
+ `geofencing.geo.region.amazonaws.com`
+ `metadata.geo.region.amazonaws.com`

之前的 DNS 名称是针对 IPv4 域名的。以下 IPV6 DNS 名称也可以用于接口终端节点。
+ `maps.geo.region.api.aws`
+ `places.geo.region.api.aws`
+ `routes.geo.region.api.aws`
+ `tracking.geo.region.api.aws`
+ `geofencing.geo.region.api.aws`
+ `metadata.geo.region.api.aws`

## 从 Amazon Location 接口端点访问 Amazon Location API 操作
<a name="accessing-apis-from-interface-endpoints"></a>

您可以使用[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/location/)或[AWS SDKs](https://docs.aws.amazon.com/location/latest/developerguide/dev-sdks.html)通过亚马逊定位接口终端节点访问亚马逊定位 API 操作。

**示例：创建 VPC 端点**

```
aws ec2 create-vpc-endpoint \
--region us-east-1 \
--service-name location-service-name \
--vpc-id client-vpc-id \
--subnet-ids client-subnet-id \
--vpc-endpoint-type Interface \
--security-group-ids client-sg-id
```

**示例：修改 VPC 端点**

```
aws ec2 modify-vpc-endpoint \
--region us-east-1 \
--vpc-endpoint-id client-vpc-endpoint-id \
--policy-document policy-document \ #example optional parameter
--add-security-group-ids security-group-ids \ #example optional parameter 
# any additional parameters needed, see PrivateLink documentation for more details
```

## 更新本地 DNS 配置
<a name="updating-on-premises-dns-config"></a>

使用特定于端点的 DNS 名称访问适用于 Amazon Location 的接口端点时，您无需更新本地 DNS 解析程序。您可以使用来自公有 Amazon Location DNS 域的接口端点的私有 IP 地址解析特定于端点的 DNS 名称。

使用接口端点访问 Amazon Location，无需 Amazon VPC 中的网关端点和互联网网关

Amazon VPC 中的接口端点可以通过 Amazon 网络，将 Amazon VPC 内的应用程序和本地应用程序路由到 Amazon Location。

## 为 Amazon Location 创建 Amazon VPC 端点策略
<a name="creating-vpc-endpoint-policy"></a>

您可以为 Amazon VPC 端点附加一个端点策略，以控制对 Amazon Location 的访问。该策略指定以下信息：
+ 可以执行操作的 AWS Identity and Access Management (IAM) 委托人
+ 可执行的操作
+ 可对其执行操作的资源

**示例：**访问 Amazon Location Service 地点的 VPCe 政策示例 APIs：

```
{
	"Version": "2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "Allow-access-to-location-service-places-opeartions",
			"Effect": "Allow",
			"Action": [
				"geo-places:*",
				"geo:*"
			],
			"Resource": [
				"arn:aws:geo-places:us-east-1::provider/default",
				"arn:aws:geo:us-east-1:*:place-index/*"
			]
		}
	]
}
```

# Amazon Location 中的配置和漏洞分析
<a name="vulnerability-analysis-and-management"></a>

配置和 IT 控制由您（我们的客户）共同 AWS 负责。有关更多信息，请参阅[责任 AWS 共担模型](https://aws.amazon.com/compliance/shared-responsibility-model/)。

# 防止跨服务混淆代理
<a name="cross-service-confused-deputy-prevention"></a>

混淆代理问题是一个安全性问题，即不具有某操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在中 AWS，跨服务模仿可能会导致混乱的副手问题。一个服务（*呼叫服务*）调用另一项服务（*所谓的服务*）时，可能会发生跨服务模拟。可以操纵调用服务，使用其权限以在其他情况下该服务不应有访问权限的方式对另一个客户的资源进行操作。为防止这种情况， AWS 提供可帮助您保护所有服务的数据的工具，而这些服务中的服务主体有权限访问账户中的资源。

Amazon Location Service 不会代表您充当其他 AWS 服务的呼叫服务，因此在这种情况下，您无需添加这些保护措施。要了解更多关于混淆代理问题，请参阅 *AWS Identity and Access Management 用户指南*中的[混淆代理问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)。

# Amazon Location Service 的最佳实践
<a name="best-practices"></a>

本主题提供了可帮助您使用 Amazon Location Service 的最佳实践。虽然这些最佳实践可以帮助您充分利用 Amazon Location Service，但它们并不代表完整的解决方案。您应该只遵循适用于您的环境的建议。

**Topics**
+ [安全性](#security-best-practice)

## 安全性
<a name="security-best-practice"></a>

为了帮助管理甚至避免安全风险，请考虑以下最佳实践：
+ 使用联合身份和 IAM 角色来管理、控制或限制对您的Amazon Location资源的访问。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 最佳实操](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。
+ 遵循最低权限原则，仅授予对您的 Amazon Location Service 资源所需的最低访问权限。
+ 对于网络应用程序中使用的 Amazon Location Service 资源，请使用 `aws:referer` IAM 条件限制访问权限，限制除允许名单中包含的网站以外的网站使用。
+ 使用监控和日志工具来跟踪器资源的访问和使用情况。有关更多信息，请参阅 AWS CloudTrail 用户指南中的[Amazon Location Service 中的日志记录和监控](security-logging-and-monitoring.md)和[记录跟踪的数据事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)。
+ 使用安全连接，例如以 `https://` 开头的连接，以增加安全性并在服务器与浏览器之间传输数据时保护用户免受攻击。

### Amazon Location Service 的检测性安全最佳实践
<a name="security-best-practices-detective"></a>

Amazon Location Service 的以下最佳实践可以帮助检测安全事故：

**实施 AWS 监控工具**  
监控对于事件响应至关重要，可以维护 Amazon Location Service 资源和解决方案的可靠性和安全性。您可以从多种可用工具和服务中实施监控工具 AWS ，以监控您的资源和其他 AWS 服务。  
例如，亚马逊 CloudWatch 允许您监控亚马逊定位服务（Amazon Location Service）的指标，并允许您设置警报，以便在指标满足您设定的特定条件并达到您定义的阈值时通知您。创建警报时，您可以设置 CloudWatch 为使用 Amazon 简单通知服务发送提醒通知。有关更多信息，请参阅 [Amazon Location Service 中的日志记录和监控](security-logging-and-monitoring.md)。

**启用 AWS 日志工具**  
日志记录记录用户、角色或 AWS 服务在 Amazon Location Service 中采取的操作。您可以实现日志工具，例如 AWS CloudTrail 收集操作数据以检测异常 API 活动。  
创建跟踪时，可以配置 CloudTrail 为记录事件。事件是对资源或资源内部执行的资源操作的记录，如向 Amazon Location 发出的请求、发出请求的 IP 地址、请求的发出请求的 IP 地址、时间、时间，以及其他数据。有关更多信息，请参阅 AWS CloudTrail 用户指南中的[记录跟踪的数据事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)。

### Amazon Location Service 的预防性安全最佳实践
<a name="security-best-practices-preventive"></a>

Amazon Location Service 的以下最佳实践可以帮助预防安全事故：

**使用安全连接**  
请务必使用加密连接，例如以 `https://` 开头的连接，以确保敏感信息在传输过程中的安全。

**实施最低权限访问资源**  
当您为 Amazon Location 资源创建自定义策略时，只授予执行任务所需的权限。建议最开始只授予最低权限，然后根据需要授予其他权限，则样会更加安全。实施最低权限访问对于减小风险以及可能由错误或恶意攻击造成的影响至关重要。有关更多信息，请参阅 [用于 AWS Identity and Access Management 进行身份验证](security-iam.md)。

**使用全球唯一的设备作为设备 IDs IDs**  
对设备使用以下约定 IDs。  
+ 设备 IDs 必须是唯一的。
+ 设备 IDs 不应是秘密的，因为它们可以用作其他系统的外键。
+ 设备 IDs 不应包含个人身份信息 (PII)，例如电话设备 IDs 或电子邮件地址。
+ 设备 IDs 不应是可预测的。建议使用不透明的标识符 UUIDs ，例如。

**不要在设备位置属性中包含 PII**  
发送设备更新（例如，使用 [DevicePositionUpdate](https://docs.aws.amazon.com/location/latest/APIReference/API_WaypointTracking_DevicePositionUpdate.html)）时，请勿在中包含个人身份信息 (PII)，例如电话号码或电子邮件地址。`PositionProperties`