

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

# 中的数据保护 AWS AppFabric
<a name="data-protection"></a>

分 AWS [担责任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)适用于中的数据保护 AWS AppFabric。如本模型所述 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。
+ 使用设置 API 和用户活动日志 AWS CloudTrail。有关使用 CloudTrail 跟踪捕获 AWS 活动的信息，请参阅《*AWS CloudTrail 用户指南》*中的[使用跟 CloudTrail 踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解决方案以及其中的所有默认安全控件 AWS 服务。
+ 使用高级托管安全服务（例如 Amazon Macie），它有助于发现和保护存储在 Amazon S3 中的敏感数据。
+ 如果您在 AWS 通过命令行界面或 API 进行访问时需要经过 FIPS 140-3 验证的加密模块，请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息，请参阅《美国联邦信息处理标准（FIPS）第 140-3 版》[https://aws.amazon.com/compliance/fips/](https://aws.amazon.com/compliance/fips/)。

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



**注意**  
有关适用于安全性的数据保护的 AppFabric 更多信息，请参阅[中的数据处理 AppFabric](productivity-data-processing.md)。

## 静态加密
<a name="encryption-rest"></a>

AWS AppFabric 支持静态加密，这是一种服务器端加密功能，当与您的应用程序包相关的所有数据保存到磁盘时，可以 AppFabric透明地对其进行加密，并在您访问数据时对其进行解密。默认情况下，使用 from AWS Key Management Service (AWS KMS) AppFabric 加密您的数据。 AWS 拥有的密钥 您也可以选择使用自己的客户托管密钥对数据进行加密 AWS KMS。

当您删除应用程序捆绑包时，其所有元数据都将被永久删除。

## 传输中加密
<a name="encryption-transit"></a>

配置应用程序包时，您可以选择 AWS 拥有的密钥 或客户托管密钥。在为审计日志摄取收集和规范化数据时，会将数据临时存储在中间亚马逊简单存储服务 (Amazon S3) Service 存储桶中，并使用此密钥对其进行加密。 AppFabric 该临时的存储桶将在 30 天后使用存储桶生命周期策略删除。

AppFabric 使用 TLS 1.2 保护传输中的所有数据，并使用 AWS 签名 V4 签名 API 请求。 AWS 服务 

## 密钥管理
<a name="key-management"></a>

AppFabric 支持使用 AWS 拥有的密钥 或客户托管密钥加密数据。我们建议您使用客户托管密钥，因为它能让您完全控制加密数据。当您选择客户托管密钥时，会将资源策略 AppFabric 附加到客户托管密钥，授予其访问客户托管密钥的权限。

### 客户托管密钥
<a name="key-management-cust-key"></a>

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

## 密钥策略
<a name="key-policy"></a>

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

要将客户托管密钥与一起使用 AppFabric，创建您的 AppFabric资源的 AWS Identity and Access Management (IAM) 用户或角色必须有权使用您的客户托管密钥。我们建议您创建一个仅与之配合使用的密钥， AppFabric 并将您的 AppFabric 用户添加为该密钥的用户。这种方法限制了访问您数据的范围。您的用户需要的权限如下所示：
+ `kms:DescribeKey`
+ `kms:CreateGrant`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`

 AWS KMS 控制台将指导您使用相应的密钥策略创建密钥。有关密钥策略的更多信息，请参阅 *AWS KMS 开发人员指南*的 [AWS KMS中的密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users)。

以下是一个密钥政策示例，它可以：
+ 对钥匙的 AWS 账户根用户 完全控制。
+ 允许用户使用 AppFabric 您的客户托管密钥 AppFabric。
+ `us-east-1` 中设置的应用程序捆绑包的密钥政策。

## 如何在中 AppFabric 使用补助金 AWS KMS
<a name="fabric-kms-grants"></a>

AppFabric 需要获得授权才能使用您的客户托管密钥。有关更多信息，请参阅 *AWS KMS 开发人员指南*的 [AWS KMS中的授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。

创建应用程序包时，通过向发送`[https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)`请求来代表您 AppFabric 创建授权 AWS KMS。中的授权 AWS KMS 用于授予对客户账户中 AWS KMS 密钥的 AppFabric 访问权限。 AppFabric 要求授权使用您的客户托管密钥进行以下内部操作：
+ 向发送`[https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)`请求 AWS KMS 以生成由您的客户托管密钥加密的数据密钥。
+ 向发送解密加密数据密钥的`[https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)`请求，以便这些密钥可用于加密您的数据和解密传输中的应用程序访问令牌。 AWS KMS 
+ 向发送`[https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)`请求 AWS KMS 以加密传输中的应用程序访问令牌。

以下是授权的示例。

```
{
  "KeyId": "arn:aws:kms:us-east-1:111122223333:key/ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "GrantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
  "Name": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "CreationDate": "2022-10-11T20:35:39+00:00",
  "GranteePrincipal": "appfabric.us-east-1.amazonaws.com",
  "RetiringPrincipal": "appfabric.us-east-1.amazonaws.com",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "Operations": [
    "Decrypt",
    "Encrypt",
    "GenerateDataKey"
  ],
  "Constraints": {
    "EncryptionContextSubset": {
      "appBundleArn": "arn:aws:fabric:us-east-1:111122223333:appbundle/ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE"
    }
  }
},
```

当您删除应用程序包时，会 AppFabric 停用对您的客户托管密钥发放的授权。

## 监控您的加密密钥 AppFabric
<a name="monitoring-encryption"></a>

当您将 AWS KMS 客户托管密钥与一起使用时 AppFabric，您可以使用 AWS CloudTrail 日志来跟踪 AppFabric 发送到的请求 AWS KMS。

以下是 AppFabric 使用`CreateGrant`客户托管密钥时记录 CloudTrail 的事件示例。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser",
        "arn": "arn:aws:sts::111122223333:assumed-role/AssumedRole/SampleUser",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/AssumedRole",
                "accountId": "111122223333",
                "userName": "SampleUser"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-04-28T14:01:33Z",
                "mfaAuthenticated": "false"
            }
        }
    },
    "eventTime": "2023-04-28T14:05:48Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "appfabric.amazonaws.com",
    "userAgent": "appfabric.amazonaws.com",
    "requestParameters": {
        "granteePrincipal": "appfabric.us-east-1.amazonaws.com",
        "constraints": {
            "encryptionContextSubset": {
                "appBundleArn": "arn:aws:appfabric:us-east-1:111122223333:appbundle/ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE"
            }
        },
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLEID",
        "retiringPrincipal": "appfabric.us-east-1.amazonaws.com",
        "operations": [
            "Encrypt",
            "Decrypt",
            "GenerateDataKey"
        ]
    },
    "responseElements": {
        "grantId": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
        "keyId": "arn:aws:kms:us-east-1:111122223333:key/KEY_ID"
    },
    "additionalEventData": {
        "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
            "accountId": "AWS Internal",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-east-1:111122223333:key/key_ID"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "sharedEventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_256_GCM_SHA384",
        "clientProvidedHostHeader": "kms.us-east-1.amazonaws.com"
    }
}
```