本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
中的数据保护 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 通过命令行界面或访问时需要 FIPS 140-3 经过验证的加密模块API,请使用端点。FIPS有关可用FIPS端点的更多信息,请参阅联邦信息处理标准 (FIPS) 140-3
。
强烈建议您切勿将机密信息或敏感信息(如您客户的电子邮件地址)放入标签或自由格式文本字段(如名称字段)。这包括您使用 AppFabric 或以其他 AWS 服务 方式使用控制台时API、 AWS CLI、或 AWS SDKs。在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您URL向外部服务器提供,我们强烈建议您不要在中包含凭据信息,URL以验证您对该服务器的请求。
注意
有关适用于安全性的数据保护的 AppFabric 更多信息,请参阅中的数据处理 AppFabric。
静态加密
AWS AppFabric 支持静态加密,这是一种服务器端加密功能,当与您的应用程序包相关的所有数据保存到磁盘时,可以 AppFabric透明地对其进行加密,并在您访问数据时对其进行解密。默认情况下,使用 from AWS Key Management Service (AWS KMS) AppFabric 加密您的数据。 AWS 拥有的密钥 您也可以选择使用自己的客户托管密钥对数据进行加密 AWS KMS。
当您删除应用程序捆绑包时,其所有元数据都将被永久删除。
传输中加密
配置应用程序包时,您可以选择 AWS 拥有的密钥 或客户托管密钥。在为审计日志摄取收集和规范化数据时,会将数据临时存储在中间亚马逊简单存储服务 (Amazon S3) Service 存储桶中,并使用此密钥对其进行加密。 AppFabric 该临时的存储桶将在 30 天后使用存储桶生命周期策略删除。
AppFabric 使用 TLS 1.2 保护传输中的所有数据,并使用 S AWS ignatur AWS 服务 e V API 4 签署请求。
密钥管理
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
中设置的应用程序捆绑包的密钥政策。
{ "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::
111122223333
:root"}, "Action": ["kms:*"], "Resource": "arn:aws:kms:us-east-1
: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": "*" }, { "Sid": "Allow access to principals authorized to use AWS AppFabric", "Effect": "Allow", "Principal": {"AWS": "IAM-role/user-creating-appfabric-resources
"}, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant", "kms:ListAliases" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "appfabric.us-east-1
.amazonaws.com", "kms:CallerAccount": "111122223333
" } } } ] }
如何在中 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" } }