EC2 Image Builder 中的数据保护 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

EC2 Image Builder 中的数据保护

责任共担模型 Amazon 适用于 EC2 Image Builder 中的数据保护。如本模型所述 Amazon ,负责保护运行所有内容的全球基础架构 Amazon Web Services 云。您负责维护对托管在此基础设施上的内容的控制。您还负责您所使用的 Amazon Web Services 的安全配置和管理任务。有关数据隐私的更多信息,请参阅数据隐私常见问题

出于数据保护目的,我们建议您保护 Amazon Web Services 账户 凭证并使用 Amazon IAM Identity Center 或 Amazon Identity and Access Management (IAM) 设置个人用户。这样,每个用户只获得履行其工作职责所需的权限。我们还建议您通过以下方式保护数据:

  • 对每个账户使用多重身份验证 (MFA)。

  • 使用 SSL/TLS 与资源通信。 Amazon 我们要求使用 TLS 1.2,建议使用 TLS 1.3。

  • 使用设置 API 和用户活动日志 Amazon CloudTrail。

  • 使用 Amazon 加密解决方案以及其中的所有默认安全控件 Amazon Web Services。

  • 使用高级托管安全服务(例如 Amazon Macie),它有助于发现和保护存储在 Amazon S3 中的敏感数据。

  • 如果您在 Amazon 通过命令行界面或 API 进行访问时需要经过 FIPS 140-2 验证的加密模块,请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息,请参阅《美国联邦信息处理标准(FIPS)第 140-2 版》

我们强烈建议您切勿将机密信息或敏感信息(如您客户的电子邮件地址)放入标签或自由格式文本字段(如名称字段)。这包括您使用控制台、API 或软件开发工具包 Amazon Web Services 使用 Image Buil Amazon der 或其他软件开发工具包的情况。 Amazon CLI在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供网址,强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。

EC2 Image Builder 中的加密和密钥管理

默认情况下,Image Builder 使用服务拥有的 KMS 密钥对传输中数据和静态数据进行加密,但以下情况除外:

  • 自定义组件 – Image Builder 使用默认 KMS 密钥或服务拥有的 KMS 密钥对自定义组件进行加密。

  • 映像工作流 – 如果您在工作流创建期间指定密钥,Image Builder 可以使用客户托管密钥对映像工作流进行加密。Image Builder 使用您的密钥处理加密和解密,以运行您为映像配置的工作流。

您可以通过管理自己的密钥 Amazon KMS。但是,您没有权限管理 Image Builder 拥有的 Image Builder KMS 密钥。有关使用管理 KMS 密钥的更多信息 Amazon Key Management Service,请参阅 Amazon Key Management Service 开发人员指南中的入门

加密上下文

为了对加密数据进行额外的完整性和真实性检查,您可以选择在加密数据时包含加密上下文。使用加密上下文对资源进行加密时,会 Amazon KMS 以加密方式将上下文绑定到密文。只有当请求者为上下文提供精确、区分大小写的匹配项时,才能对资源进行解密。

本节中的策略示例使用的加密上下文类似于 Image Builder 工作流资源的Amazon 资源名称(ARN)。

使用客户托管密钥加密映像工作流

要添加一层保护,您可以使用自己的客户托管密钥对 Image Builder 工作流资源进行加密。如果您使用客户托管密钥加密您创建的 Image Builder 工作流,则必须在密钥政策中授予 Image Builder 访问权限,以便其在加密和解密工作流资源时使用您的密钥。您可以随时撤销这些访问权限。但是,如果您撤销对密钥的访问权限,Image Builder 将无法访问任何已加密的工作流。

授予 Image Builder 访问权限以使用客户托管密钥的过程分为两个步骤,如下所示:

步骤 1:为 Image Builder 工作流添加密钥政策权限

要使 Image Builder 能够在创建或使用工作流资源时对其进行加密和解密,必须在 KMS 密钥政策中指定权限。

此示例密钥政策授予了 Image Builder 管道访问权限,以在创建过程中加密工作流资源,并解密工作流资源以使用这些资源。该策略还向密钥管理员授予了访问权限。加密上下文和资源规范使用通配符来覆盖您拥有工作流资源的所有区域。

作为使用映像工作流的先决条件,您创建了一个 IAM 工作流执行角色,该角色向 Image Builder 授予运行工作流操作的权限。此处密钥政策示例中显示的第一条语句的主体必须指定您的 IAM 工作流执行角色。

有关客户托管密钥的更多信息,请参阅《Amazon Key Management Service Developer Guide》中的 Managing access to customer managed keys

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow access to build images with encrypted workflow", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/YourImageBuilderExecutionRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:imagebuilder:arn": "arn:aws:imagebuilder:*:111122223333:workflow/*" } } }, { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:*" ], "Resource": "arn:aws:kms:*:111122223333:key/" } ] }
步骤 2:授予对工作流执行角色的密钥访问权限

Image Builder 为运行工作流而担任的 IAM 角色需要获得使用客户托管密钥的权限。如果无法访问您的密钥,Image Builder 将无法用其来加密或解密您的工作流资源。

编辑工作流执行角色的策略以添加以下策略语句。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow access to the workflow key", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/key_ID", "Condition": { "StringLike": { "kms:EncryptionContext:aws:imagebuilder:arn": "arn:aws:imagebuilder:*:111122223333:workflow/*" } } } ] }

Amazon CloudTrail 图像工作流程的事件

以下示例显示了使用客户托管密钥存储的用于加密和解密图像工作流程的典型 Amazon CloudTrail 条目。

示例: GenerateDataKey

此示例显示了 Image Builder 从 Image Builder API 操作中调用 Amazon KMS GenerateDataKey API 操作时 CloudTrail 的事件可能是什么样子。CreateWorkflowImage Builder 必须先对新的工作流进行加密,然后才能创建工作流资源。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "PRINCIPALID1234567890:workflow-role-name", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/workflow-role-name", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "PRINCIPALID1234567890", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-11-21T20:29:31Z", "mfaAuthenticated": "false" } }, "invokedBy": "imagebuilder.amazonaws.com" }, "eventTime": "2023-11-21T20:31:03Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "imagebuilder.amazonaws.com", "userAgent": "imagebuilder.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:imagebuilder:arn": "arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/sample-encrypted-workflow/1.0.0/*", "aws-crypto-public-key": "key value" }, "keyId": "arn:aws:kms:us-west-2:111122223333:alias/ExampleKMSKey", "numberOfBytes": 32 }, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEzzzzz" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
示例:解密

此示例显示了 Image Builder 从 Image Builder API 操作中调用 Amazon KMS Decrypt API 操作时 CloudTrail 的事件可能是什么样子。GetWorkflowImage Builder 管道需要先解密工作流资源,然后才能使用该资源。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "PRINCIPALID1234567890:workflow-role-name", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/workflow-role-name", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "PRINCIPALID1234567890", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-11-21T20:29:31Z", "mfaAuthenticated": "false" } }, "invokedBy": "imagebuilder.amazonaws.com" }, "eventTime": "2023-11-21T20:34:25Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "imagebuilder.amazonaws.com", "userAgent": "imagebuilder.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEzzzzz", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "aws:imagebuilder:arn": "arn:aws:imagebuilder:us-west-2:111122223333:workflow/build/sample-encrypted-workflow/1.0.0/*", "aws-crypto-public-key": "ABC123def4567890abc12345678/90dE/F123abcDEF+4567890abc123D+ef1==" } }, "responseElements": null, "requestID": "a1b2c3d4-5678-90ab-cdef-EXAMPLEbbbbb", "eventID": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEzzzzz" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

EC2 Image Builder 中的数据存储

Image Builder 不会在服务中存储您的任何日志。所有日志保存在用于生成映像的 Amazon EC2 实例上或 Systems Manager 自动化日志中。

EC2 Image Builder 中的互联网络流量隐私

通过 HTTPS 保护 Image Builder 与本地位置之间、 Amazon 区域内的可用区之间以及 Amazon 区域之间的连接。在账户之间没有直接连接。