本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
中的数据保护 AWS AppFabric
AWS 责任共担模式
出于数据保护的目的,我们建议您保护 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 踪。
-
使用 AWS 加密解决方案以及其中的所有默认安全控件 AWS 服务。
-
使用高级托管安全服务(例如 Amazon Macie),它有助于发现和保护存储在 Amazon S3 中的敏感数据。
-
如果在 AWS 通过命令行接口或 API 进行访问时需要经过 FIPS 140-3 验证的加密模块,请使用 FIPS 终端节点。有关可用的 FIPS 端点的更多信息,请参阅《美国联邦信息处理标准(FIPS)第 140-3 版》https://aws.amazon.com/compliance/fips/
。
强烈建议您切勿将机密信息或敏感信息(如您客户的电子邮件地址)放入标签或自由格式文本字段(如名称字段)。这包括当您 AWS 服务 使用控制台 AWS CLI、API AppFabric 或 AWS SDK 或其他方式使用时。在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供 URL,强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。
注意
有关适用于安全的数据保护的更多信息,请参阅中的数据处理 AppFabric。 AppFabric
静态加密
AWS AppFabric 支持静态加密,这是一项服务器端加密功能,当与您的应用程序包相关的所有数据保存到磁盘时,它会 AppFabric透明地加密这些数据,并在访问数据时对其进行解密。默认情况下,使用 from AWS Key Management Service (AWS KMS) AppFabric 加密您的数据。 AWS 拥有的密钥 您也可以选择使用自己的客户管理密钥对数据进行加密 AWS KMS。
当您删除应用程序捆绑包时,其所有元数据都将被永久删除。
传输中加密
配置应用程序包时,您可以选择 AWS 拥有的密钥 或客户管理的密钥。在收集和规范审计日志摄取的数据时, AppFabric 将数据临时存储在中间亚马逊简单存储服务 (Amazon S3) 存储桶中,并使用此密钥对其进行加密。该临时的存储桶将在 30 天后使用存储桶生命周期策略删除。
AppFabric 使用 TLS 1.2 保护所有传输中的数据,并使用 S AWS ignature V4 签署的 API 请求。 AWS 服务
密钥管理
AppFabric 支持使用 AWS 拥有的密钥 或客户管理的密钥加密数据。我们建议您使用客户托管密钥,因为它能让您完全控制加密数据。当您选择客户管理的密钥时,将资源策略 AppFabric 附加到客户管理的密钥上,授予其访问客户管理密钥的权限。
客户托管密钥
要创建客户托管密钥,请按照 AWS KMS 开发人员指南的创建对称加密 KMS 密钥中的步骤进行操作。
密钥策略
密钥策略控制对客户托管密钥的访问。每个客户托管密钥必须只有一个密钥策略,其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管密钥时,可以指定密钥策略。有关创建密钥政策的更多信息,请参阅 AWS KMS 开发人员指南中的创建密钥政策。
要将客户管理密钥与一起使用 AppFabric,创建您的 AppFabric资源的 AWS Identity and Access Management (IAM) 用户或角色必须有权使用您的客户管理密钥。我们建议您创建仅与密钥一起使用的密钥, AppFabric 并将您的 AppFabric 用户添加为该密钥的用户。这种方法限制了访问您数据的范围。您的用户需要的权限如下所示:
-
kms:DescribeKey -
kms:CreateGrant -
kms:GenerateDataKey -
kms:Decrypt
AWS KMS 控制台指导您使用适当的密钥策略创建密钥。有关密钥策略的更多信息,请参阅 AWS KMS 开发人员指南的 AWS KMS中的密钥策略。
以下是一个密钥政策示例,它可以:
-
AWS 账户根用户 完全控制密钥。
-
获准使用 AppFabric 您的客户管理密钥的用户 AppFabric。
-
us-east-1中设置的应用程序捆绑包的密钥政策。
如何 AppFabric 使用补助金 AWS KMS
AppFabric 需要获得授权才能使用您的客户管理密钥。有关更多信息,请参阅 AWS KMS 开发人员指南的 AWS KMS中的授权。
当您创建应用程序包时,通过向发送CreateGrant请求来代表您 AppFabric 创建授权 AWS KMS。授予权限 AWS KMS 用于授予对客户账户中 AWS KMS 密钥的 AppFabric 访问权限。 AppFabric 要求授权使用您的客户管理密钥进行以下内部操作:
-
向发送
GenerateDataKey请求, AWS KMS 要求生成由您的客户管理密钥加密的数据密钥。 -
发送
Decrypt请求 AWS KMS 以解密加密的数据密钥,以便它们可用于加密您的数据和解密传输中的应用程序访问令牌。 -
向发送
Encrypt请求 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
当您将 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" } }