View a markdown version of this page

逻辑上受物理隔离的保管库 - AWS Backup

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

逻辑上受物理隔离的保管库

逻辑上受物理隔离的保管库概述

AWS Backup 提供一种辅助类型的保管库,可以将备份存储在具有其他安全功能的容器中。逻辑上受物理隔离的保管库是一种专门的保管库,除了标准备份保管库的功能外,它还提供增强的安全功能,并且能够与其他账户共享保管库访问权限,以便在发生需要快速恢复资源的事件时可以更快、更灵活地设置恢复时间目标(RTO)。

逻辑上的气隙保管库配备了额外的保护功能;每个保管库都使用AWS 自有密钥(默认)或可选使用客户管理的 KMS 密钥进行加密,并且每个保管库都配备AWS Backup 了 Vault Lock 的合规模式。加密密钥类型信息可通过 AWS Backup API 和控制台查看,以实现透明度和合规性报告。

您可以将逻辑上隔离的保管库与Multi-party 批准 (MPA) 集成,这样即使无法访问保管库拥有的账户,也能恢复保管库中的备份,这有助于保持业务连续性。此外,您可以选择与 AWS Resource Access Manager (RAM) 集成,与其他 AWS 账户(包括其他组织的账户)共享逻辑隔离保管库,这样,如果需要进行数据丢失恢复或还原测试,可以从共享保管库的账户恢复保管库中存储的备份。作为增强安全性的一部分,逻辑上气隙隔离的保管库将其备份存储在 AWS Backup 服务拥有的帐户中(这会导致备份在日志中的修改属性项中显示为在组织外部共享)。 AWS CloudTrail

在您的逻辑上处于隔离状态的保管库所属账户被关闭(恶意或以其他方式)的情况下,您仍然可以通过 MPA 访问保管库中的备份(还原或复制它们),直到关闭后期结束为止。https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-closing.html#post-closure-period关闭后期限到期后,将无法再访问备份。在关闭后期间,您可以参考AWS 账户管理文档,在进行恢复的同时重新获得对账户的控制权。

为了提高灵活性,我们建议在相同或不同账户的逻辑气隙保管库中创建跨区域副本。但是,如果您想通过仅保留单个副本来降低存储成本,则可以在加入 MPA 后使用主备份对逻辑上隔绝的保管库进行备份。 AWS

您可以在 AWS Backup 定价页面上查看逻辑上受物理隔离的保管库中受支持服务的备份的存储定价。

有关您可以复制到逻辑上受物理隔离的保管库的资源类型,请参阅按资源划分的功能可用性

逻辑上受物理隔离的保管库的用例

逻辑上受物理隔离的保管库是作为数据保护策略一部分的辅助保管库。当您希望为备份使用符合以下条件的保管库时,此保管库可以帮助增强组织的保留策略和恢复能力

  • 合规模式下使用保管库锁定功能自动设置

  • 默认情况下,使用 AWS 自有密钥提供加密。(可选)您可以提供客户管理的密钥

  • 包含备份,可通过 AWS RAM 或 MPA 与创建备份的帐户以外的其他帐户共享和还原这些备份

注意事项和限制

  • 逻辑气隙保管库不支持未加密的亚马逊 Aurora、Amazon DocumentDB 和 Amazon Neptune 集群,因为它们不支持对未加密的数据库集群快照进行加密。

  • Amazon EC2 提供 EC2 允许的 AMI。如果您的账户启用了此设置,请将别名 aws-backup-vault 添加到您的允许列表中。

    如果未添加此别名,则从逻辑上受物理隔离的保管库复制到备份保管库的操作以及从逻辑上受物理隔离的保管库中还原 EC2 实例的操作将失败,并显示错误消息,例如“在区域中找不到源 AMI ami-xxxxxx”。

  • 存储在逻辑上受物理隔离的保管库中的恢复点的 ARN(Amazon 资源名称)将使用 backup 代替底层资源类型。例如,如果原始 ARN 以 arn:aws:ec2:region::image/ami-* 开头,则逻辑上受物理隔离的保管库中恢复点的 ARN 将为 arn:aws:backup:region:account-id:recovery-point:*

    您可以使用 CLI 命令 list-recovery-points-by-backup-vault 确定 ARN。

与标准备份保管库进行比较和对比

备份保管库是 AWS Backup中使用的主要和标准类型的保管库。创建备份时,每个备份都存储在备份保管库中。您可以分配基于资源的策略来管理存储在保管库中的备份,例如存储在保管库中的备份的生命周期。

逻辑气隙保管库是一种专门的保管库,具有更高的安全性和灵活共享功能,可缩短恢复时间 (RTO)。该保管库存储最初创建并存储在标准备份保管库中的主备份或备份副本。

备份保管库使用密钥进行加密,这是一种限制目标用户访问权限的安全机制。这些密钥可以由客户管理或 AWS 管理。有关复制作业期间的加密行为(包括复制到逻辑上受物理隔离的保管库),请参阅复制加密

此外,借助保管库锁定功能,可以更安全地保护备份保管库;逻辑上受物理隔离的保管库配备了合规模式下的保管库锁定功能。

与备份文件库类似,逻辑气隙保管库也支持 Amazon EC2 备份的受限标签

功能 备份保管库 逻辑上受物理隔离的保管库
AWS Backup Audit Manager 您可以使用 AWS Backup 审计管理器控制和修复来监控您的备份保管库。 除了标准文件库可用的控制措施外,还要确保按照您确定的时间表将特定资源的备份存储在至少一个逻辑上隔绝的保管库中。

Billing

完全由 AWS Backup 托管的资源的存储和数据传输费用记在“AWS Backup”下。其他资源类型的存储和数据传输费用将记在各自的服务下。

例如,Amazon EBS 备份将显示在“Amazon EBS”下;Amazon S3 备份将显示在“AWS Backup”下。

这些保管库的所有账单费用(存储或数据传输)都记在“AWS Backup”下。

区域

适用于 AWS Backup 运营所在的所有地区

在支持的大多数区域中可用 AWS Backup。目前不适用于亚太地区(马来西亚)、加拿大西部(卡尔加里)、墨西哥(中部)、亚太地区(泰国)、亚太地区(台北)、亚太地区(新西兰)、中国(北京)、中国(宁夏US-East)、 AWS GovCloud ()或 AWS GovCloud (US-West)。

资源

可以存储大多数支持跨账户复制的资源类型的备份副本。

有关可以复制到此保管库的资源,请参阅按资源划分的功能可用性中的逻辑上受物理隔离的保管库列。

还原

备份可以由保管库所属的同一个账户进行还原,

也可以由与其所属账户不同的另一个账户进行还原,但前提是这两个账户共享该保管库。

安全性

可以选择使用密钥进行加密(客户管理或 AWS 管理)

可以选择在合规模式或监管模式下使用保管库锁定功能

可以使用AWS 自有密钥或客户管理的密钥进行加密

在合规模式下始终使用保管库锁定功能进行锁定

通过 AWS RAM 或 MPA 共享保管库时,加密密钥类型信息会被保留并可见

共享

可以通过策略和 AWS Organizations 管理访问权限

不兼容 AWS RAM

可以选择使用 AWS RAM 跨账户共享

创建逻辑上受物理隔离的保管库

您可以通过 AWS Backup 控制台或通过和 CLI 命令的组合来创建逻辑上气隙隔离的 AWS Backup 保 AWS RAM 管库。

在合规模式下,每个逻辑上受物理隔离的保管库都配有保管库锁定功能。请参阅AWS Backup 保管库锁定,以帮助确定适合运营的保留期值

Console
从控制台创建逻辑气隙保管库
  1. 在处打开 AWS Backup 控制台https://console.aws.amazon.com/backup

  2. 在导航窗格中,选择保管库

  3. 将显示两种类型的保管库。选择创建新保管库

  4. 输入备份保管库的名称。您对保管库的命名可以体现出将要存储在其中的内容,或者便于搜索您所需的备份。例如,您可以将其命名为 FinancialBackups

  5. 选择逻辑上受物理隔离的保管库所对应的单选按钮。

  6. (可选)选择加密密钥。您可以选择客户管理的 KMS 密钥以进一步控制加密,也可以使用默认 AWS拥有的密钥(推荐)。

  7. 设置最短保留期

    此值(以天、月或年为单位)是可以在此保管库中保留备份的最短时间。无法将保留期短于此值的备份复制到此保管库。

    允许的最小值为 7 天。月数和年数的值满足这一最低要求。

  8. 设置最长保留期

    此值(以天、月或年为单位)是可以在此保管库中保留备份的最长时间。无法将保留期大于此值的备份复制到此保管库。

  9. (可选)设置加密密钥

    指定用于保管库的密钥。您可以选择AWS 自有密钥(由管理 AWS Backup),也可以输入客户管理密钥的 ARN,该密钥最好属于您有权访问的其他账户。 AWS Backup 建议使用 AWS 自有密钥。

  10. (可选)添加标签,以帮助您搜索和识别逻辑气隙保管库。例如,您可以添加 BackupType:Financial 标签。

  11. 选择创建保管库

  12. 检查设置。如果所有设置都按预期显示,请选择创建逻辑气隙保管库

  13. 控制台将带您进入新保管库的详细信息页面。验证保管库详细信息是否符合预期。

  14. 选择保管库以查看您账户中的保管库。此时将显示逻辑上受物理隔离的保管库。KMS 密钥将在保管库创建后大约 1 到 3 分钟内可用。刷新页面以查看关联的密钥。一旦密钥可见,保管库即处于可用状态,可供使用。

AWS CLI

从 CLI 创建逻辑上受物理隔离的保管库

您可以使用 AWS CLI 以编程方式对逻辑上的气隙保管库执行操作。每个 CLI 都特定于其起源的 AWS 服务。与共享相关的命令在前面加上 aws ram;所有其他命令都应在前面加上 aws backup

使用 CLI 命令 create-logically-air-gapped-backup-vault,该命令用以下参数进行了修改:

aws backup create-logically-air-gapped-backup-vault --region us-east-1 // optional --backup-vault-name sampleName // required --min-retention-days 7 // required Value must be an integer 7 or greater --max-retention-days 35 // required --encryption-key-arn arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 // optional --creator-request-id 123456789012-34567-8901 // optional

可选--encryption-key-arn参数允许您为保管库加密指定客户管理的 KMS 密钥。如果未提供,保管库将使用 AWS自有密钥。

用于创建逻辑上受物理隔离的保管库的 CLI 命令示例:

aws backup create-logically-air-gapped-backup-vault --region us-east-1 --backup-vault-name sampleName --min-retention-days 7 --max-retention-days 35 --creator-request-id 123456789012-34567-8901 // optional

使用客户管理的加密创建逻辑气隙保管库的 CLI 命令示例:

aws backup create-logically-air-gapped-backup-vault --region us-east-1 --backup-vault-name sampleName --min-retention-days 7 --max-retention-days 35 --encryption-key-arn arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 --creator-request-id 123456789012-34567-8901 // optional

有关创建操作之后的信息,请参阅 CreateLogicallyAirGappedBackupVault API 响应元素。如果操作成功,则新的逻辑气隙保管库将为 of。 VaultState CREATING

创建完成并分配 KMS 加密密钥后, VaultState 将过渡到AVAILABLE。该保管库为可用状态后,即可供使用。可以通过调用 DescribeBackupVaultListBackupVaults 来检索 VaultState

查看逻辑上受物理隔离的保管库的详细信息

您可以通过 AWS Backup 控制台或 AWS Backup CLI 查看保管库的详细信息,例如摘要、恢复点、受保护资源、账户共享、访问策略和标签。

Console
  1. 在处打开 AWS Backup 控制台https://console.aws.amazon.com/backup

  2. 从左侧导航窗格中,选择保管库

  3. 保管库描述下方将列出三个列表:由该账户创建的保管库、通过 RAM 共享的保管库和通过批准可访问的保管库。 Multi-party 选择所需的选项卡以查看保管库。

  4. 保管库名称下,单击保管库名称以打开详细信息页面。您可以查看摘要、恢复点、受保护的资源、账户共享、访问策略和标签详细信息。

    详细信息的显示视账户类型而定:拥有保管库的账户可以查看账户共享;不拥有保管库的账户将无法查看账户共享。对于共享保管库,加密密钥类型(AWS自有或客户管理的 KMS 密钥)显示在保管库摘要中。

AWS CLI

通过 CLI 查看逻辑上受物理隔离的保管库的详细信息

CLI 命令 describe-backup-vault 可用于获取有关保管库的详细信息。参数 backup-vault-name 是必需项,region 是可选项。

aws backup describe-backup-vault --region us-east-1 --backup-vault-name testvaultname

响应示例:

{ "BackupVaultName": "LOG-AIR-GAP-VAULT-TEST", "BackupVaultArn": "arn:aws:backup:us-east-1:234567890123:backup-vault:IAD-LAGV-01", "VaultType": "LOGICALLY_AIR_GAPPED_BACKUP_VAULT", "EncryptionKeyType": "AWS_OWNED_KMS_KEY", "CreationDate": "2024-07-25T16:05:23.554000-07:00", "NumberOfRecoveryPoints": 0, "Locked": true, "MinRetentionDays": 8, "MaxRetentionDays": 30, "LockDate": "2024-07-25T16:05:23.554000-07:00" }
注意

在逻辑气隙保管库不可用的区域,该VaultType字段不包含在 API 响应中。

在逻辑上存在气隙的保管库中创建备份

从逻辑上讲,气隙保管库可以是备份计划中的拷贝作业目标目标,也可以是按需拷贝作业的目标。它也可以用作主要的备份目标。请参阅逻辑气隙保管库的主备份。

兼容的加密

要确保成功从备份保管库复制到逻辑上受物理隔离的保管库,需要一个由所复制的资源类型确定的加密密钥。

当您创建或复制完全托管资源类型的备份时,源资源可以通过客户管理的密钥或托管密钥进行加密。 AWS

当您创建或复制其他资源类型(未完全托管的)的备份时,必须使用客户管理的密钥对源进行加密。 AWS 不支持非完全托管资源的托管密钥。

通过备份计划创建备份或将备份复制到逻辑上存在气隙的保管库

您可以通过在 AWS Backup 控制台中创建新的备份计划更新现有备份计划或通过命令和将备份(恢复点)从标准备份保管库复制到逻辑气隙保管库。 AWS CLI create-backup-plan update-backup-plan您还可以将逻辑隔开的保管库用作主要目标,直接在逻辑隔离的保管库中创建备份。有关更多详细信息,请参阅逻辑气隙保管库目标为逻辑上受物理隔离的保管库的主备份的主备份。

可以按需将备份从一个逻辑上受物理隔离的保管库复制到另一个逻辑上受物理隔离的保管库(无法在备份计划中安排此类备份)。只要使用客户托管密钥对副本进行加密,就可以将备份从逻辑上受物理隔离的保管库复制到标准备份保管库。

On-demand 将副本备份到逻辑上存在气隙的保管库

要创建一次性按需备份副本到逻辑气隙保管库,可以从标准备份保管库复制。 Cross-Region 或者,如果资源类型支持副本类型,则可以使用跨账户副本。

副本可用性

可以从保管库所属的账户创建备份副本。共享保管库的账户可以查看或还原备份,但不能创建副本。

只能包括支持跨区域或跨账户复制的资源类型

Console
  1. 在处打开 AWS Backup 控制台https://console.aws.amazon.com/backup

  2. 从左侧导航窗格中,选择保管库

  3. 在保管库详细信息页面中,将显示该保管库中的所有恢复点。在要复制的恢复点旁边打勾标记。

  4. 选择操作,然后选择下拉菜单中的复制

  5. 在下一个屏幕上,输入目的地详细信息。

    1. 指定目标区域。

    2. 目的地备份保管库下拉菜单显示符合条件的目的地保管库。按类型 logically air-gapped vault 选择一个

  6. 将所有详细信息设置为首选项后,选择复制

在控制台的作业页面上,您可以选择复制作业以查看当前的复制作业。

AWS CLI

使用 start-copy-job 将备份保管库中的现有备份复制到逻辑上受物理隔离的保管库。

CLI 输入示例:

aws backup start-copy-job --region us-east-1 --recovery-point-arn arn:aws:resourcetype:region::snapshot/snap-12345678901234567 --source-backup-vault-name sourcevaultname --destination-backup-vault-arn arn:aws:backup:us-east-1:123456789012:backup-vault:destinationvaultname --iam-role-arn arn:aws:iam::123456789012:role/service-role/servicerole

有关更多信息,请参阅复制备份跨区域 Cross-account备份和备份。

共享逻辑上受物理隔离的保管库

您可以使用 AWS Resource Access Manager (RAM) 与您指定的其他账户共享逻辑隔离保管库。共享保管库时,加密密钥类型信息(AWS自有或客户管理的 KMS 密钥)会被保留,与之共享保管库的账户可见。

保管库只能与个人 AWS 账户 ID 共享。您可以与组织中的账户共享,也可以与其他组织中的账户共享。保管库不能与整个组织或组织单位 (OU) 共享,仅支持个人账户 ID 作为共享主体。

只有具有特定 IAM 权限的账户才能共享和管理保管库共享。

要使用共享 AWS RAM,请确保您具备以下条件:

  • 两个或更多可以访问的账户 AWS Backup

  • Vault-owning 打算共享的账户具有必要的 RAM 权限。此过程需要权限 ram:CreateResourceShare。该政策AWSResourceAccessManagerFullAccess包含所有必需的 RAM-related权限:

    • backup:DescribeBackupVault

    • backup:DescribeRecoveryPoint

    • backup:GetRecoveryPointRestoreMetadata

    • backup:ListProtectedResourcesByBackupVault

    • backup:ListRecoveryPointsByBackupVault

    • backup:ListTags

    • backup:StartRestoreJob

  • 至少一个逻辑气隙保管库

Console
  1. 在处打开 AWS Backup 控制台https://console.aws.amazon.com/backup

  2. 从左侧导航窗格中,选择保管库

  3. 保管库描述下方将显示两个列表,即该账户拥有的保管库与该账户共享的保管库。该账户拥有的保管库有资格进行共享。

  4. 保管库名称下,选择逻辑气隙保管库的名称以打开详细信息页面。

  5. 账户共享窗格显示正在与哪些账户共享保管库。

  6. 要开始与其他账户共享或编辑已共享的账户,请选择管理共享

  7. 选择 “管理共享” 后, AWS RAM 控制台将打开。有关使用 AWS RAM 共享资源的步骤,请参阅 RAM 用户指南中的在 AWS RAM AWS 创建资源共享

  8. 受邀接受共享邀请的账户有 12 小时的时间接受邀请。请参阅《AWS RAM 用户指南》中的接受和拒绝资源共享邀请

  9. 如果共享步骤已完成并被接受,则保管库摘要页面将显示在账户共享 =“已共享 - 参见下面的账户共享表”下方。

AWS CLI

AWS RAM 使用 CLI 命令create-resource-share。只有拥有足够权限的账户才能访问此命令。有关 CLI 步骤,请参阅在 AWS RAM中创建资源共享

第 1 步到第 4 步是使用拥有逻辑气隙保管库的账户执行的。第 5 步到第 8 步是使用将与之共享逻辑气隙保管库的账户执行的。

  1. 登录所属账户,或者请求您组织中具有足够凭证的用户访问源账户,完成这些步骤。

    1. 如果之前创建了资源共享,且您希望向其添加其他资源,请使用 CLI associate-resource-share,而不是新保管库的 ARN。

  2. 获取具有足够权限的角色的凭证,以便通过 RAM 进行共享。将这些输入到 CLI 中

    1. 此过程需要权限 ram:CreateResourceShare。该策略AWSResourceAccessManagerFullAccess包含所有 RAM-related权限。

  3. 使用 create-resource-share

    1. 包括逻辑气隙保管库的 ARN。

    2. 输入示例:

      aws ram create-resource-share --name MyLogicallyAirGappedVault --resource-arns arn:aws:backup:us-east-1:123456789012:backup-vault:test-vault-1 --principals 123456789012 --region us-east-1
    3. 示例输出:

      { "resourceShare":{ "resourceShareArn":"arn:aws:ram:us-east-1:123456789012:resource-share/12345678-abcd-09876543", "name":"MyLogicallyAirGappedVault", "owningAccountId":"123456789012", "allowExternalPrincipals":true, "status":"ACTIVE", "creationTime":"2021-09-14T20:42:40.266000-07:00", "lastUpdatedTime":"2021-09-14T20:42:40.266000-07:00" } }
  4. 在输出中复制资源共享 ARN(后续步骤需要这样做)。将 ARN 交给您邀请接收共享的账户操作员。

  5. 获取资源共享 ARN

    1. 如果您没有执行第 1 步到第 4 步,请ShareArn 从执行者那里获取资源。

    2. 示例:arn:aws:ram:us-east-1:123456789012:resource-share/12345678-abcd-09876543

  6. 在 CLI 中,假设接收账户的凭证。

  7. 通过 get-resource-share-invitations 获取资源共享邀请。有关更多信息,请参阅《AWS RAM 用户指南》中的接受和拒绝邀请

  8. 在目的地(恢复)账户中接受邀请。

    1. 使用 accept-resource-share-invitation(也可使用 reject-resource-share-invitation)。

您可以使用 AWS RAM CLI 命令查看共享项目:

  • 已共享的资源:

    aws ram list-resources --resource-owner SELF --resource-type backup:backup-vault --region us-east-1

  • 显示主体:

    aws ram get-resource-share-associations --association-type PRINCIPAL --region us-east-1

  • 其他账户共享的资源:

    aws ram list-resources --resource-owner OTHER-ACCOUNTS --resource-type backup:backup-vault --region us-east-1

从逻辑上受物理隔离的保管库中还原备份

您可以从拥有该保管库的账户或与之共享保管库的任何账户,还原存储在逻辑上受物理隔离的保管库中的备份。

有关如何通过 AWS Backup 控制台还原恢复点的信息,请参阅还原备份

将备份从逻辑上受物理隔离的保管库共享到您的账户后,您可以使用 start-restore-job 来还原备份。

示例 CLI 输入可能包括以下命令和参数:

aws backup start-restore-job --recovery-point-arn arn:aws:backup:us-east-1:accountnumber:recovery-point:RecoveryPointID --metadata {\"availabilityzone\":\"us-east-1d\"} --idempotency-token TokenNumber --resource-type ResourceType --iam-role arn:aws:iam::number:role/service-role/servicerole --region us-east-1

删除逻辑上受物理隔离的保管库

参阅删除保管库。如果保管库仍包含备份(恢复点),则无法将其删除。在启动删除操作之前,请确保保管库中没有备份。

注意

还原访问备份保管库是底层逻辑气隙保管库的视图,本身不包含任何恢复点。即使它处于 FAILED 状态,也可以使用将其DeleteBackupVault从恢复帐户中删除。文件库锁定(合规模式)不会阻止此次删除。

根据密钥删除策略,保管库删除操作还会在该保管库被删除七天后删除与该保管库关联的密钥。

以下示例 CLI 命令 delete-backup-vault 可用于删除保管库。

aws backup delete-backup-vault --region us-east-1 --backup-vault-name testvaultname

逻辑上受物理隔离的保管库的其他编程选项

可以修改 CLI 命令 list-backup-vaults,以列出该账户拥有和存在的所有保管库:

aws backup list-backup-vaults --region us-east-1

要仅列出逻辑气隙保管库,请添加参数

--by-vault-type LOGICALLY_AIR_GAPPED_BACKUP_VAULT

包括用于筛选返回的保管库列表的参数 by-shared,以仅显示共享的逻辑上受物理隔离的保管库。响应将包括每个共享保管库的加密密钥类型信息。

aws backup list-backup-vaults --region us-east-1 --by-shared

显示加密密钥类型信息的示例响应:

{ "BackupVaultList": [ { "BackupVaultName": "shared-logically air-gapped-vault", "BackupVaultArn": "arn:aws:backup:us-east-1:123456789012:backup-vault:shared-logically air-gapped-vault", "VaultType": "LOGICALLY_AIR_GAPPED_BACKUP_VAULT", "EncryptionKeyType": "AWS_OWNED_KMS_KEY", "CreationDate": "2024-07-25T16:05:23.554000-07:00", "Locked": true, "MinRetentionDays": 7, "MaxRetentionDays": 30 } ] }
注意

在逻辑气隙保管库不可用的区域,该VaultType字段不包含在 API 响应中。

了解逻辑气隙保管库的加密密钥类型

逻辑上的气隙保管库支持不同的加密密钥类型,这些信息可通过 AWS Backup API 和控制台查看。当通过 AWS RAM 或 MPA 共享保管库时,加密密钥类型信息会被保留下来,并可供共享保管库的账户看见。这种透明性可帮助您了解保管库的加密配置,并就备份和还原操作做出明智的决策。

加密密钥类型值

EncryptionKeyType字段可以有以下值:

  • AWS_OWNED_KMS_KEY-保管库使用 AWS自有密钥加密。当未指定客户管理的密钥时,这是逻辑气隙保管库的默认加密方法。

  • CUSTOMER_MANAGED_KMS_KEY-保管库使用您控制的客户管理的 KMS 密钥进行加密。此选项提供对加密密钥和访问策略的额外控制。

注意
  • AWS Backup 建议使用 AWS 自有密钥和逻辑气隙保管库。

  • 如果您的组织政策要求使用客户管理的密钥,则 AWS 不建议使用来自同一账户的密钥,测试除外。对于生产工作负载,使用专门负责恢复的二级组织中另一个账户的客户管理密钥作为最佳实践。您可以参考博客 Encrypt AWS Backup 使用客户管理的密钥进行逻辑气隙保管库,以收集有关设置基于 CMK 的逻辑气隙保管库的更多见解。

  • 您只能在保管库创建期间选择 AWS KMS 加密密钥。创建后,保管库中包含的所有备份都将使用该密钥进行加密。您无法更改或迁移保管库以使用其他加密密钥。

创建 CMK 加密逻辑气隙保管库的密钥政策

使用客户管理的密钥创建逻辑气隙保管库时,必须将 AWS-managed 策略AWSBackupFullAccess应用于您的账户角色。此策略包括 AWS Backup 允许在备份、复制和存储Allow操作期间与 AWS KMS KMS 密钥进行交互以创建授权的操作。此外,您必须确保您的客户管理密钥(如果使用)政策包括所需的特定权限。

  • CMK 必须与逻辑气隙保管库所在的账户共享

{ "Sid": "Allow use of the key to create a logically air-gapped vault", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::[account-id]:role/TheRoleToAccessAccount" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "backup.*.amazonaws.com" } } }

的关键政策 copy/restore

为防止任务失败,请查看您的 AWS KMS 密钥策略,确保其包含所有必需的权限,并且不包含任何可能阻止操作的拒绝语句。以下条件适用:

  • 对于所有复制方案,必须与源复制角色共享 CMK

{ "Sid": "Allow use of the key for copy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::[source-account-id]:role/service-role/AWSBackupDefaultServiceRole" //[Source copy role] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "backup.*.amazonaws.com" } } }, { "Sid": "Allow AWS Backup to create grant on the key for copy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::[source-account-id]:role/service-role/AWSBackupDefaultServiceRole" //[Source copy role] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" }, "StringLike": { "kms:ViaService": "backup.*.amazonaws.com" } } }
  • 从 CMK 加密的逻辑气隙保管库复制到备份保管库时,还必须与目标账户 SLR 共享 CMK

{ "Sid": "Allow use of the key for copy from a CMK encrypted logically air-gapped vault to normal backup vault", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::[source-account-id]:role/service-role/AWSBackupDefaultServiceRole", //[Source copy role] "arn:aws:iam::[destination-account-id]:role/aws-service-role/backup.amazonaws.com/AWSServiceRoleForBackup"], //[Destination SLR] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow AWS Backup to create grant on the key for copy", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::[source-account-id]:role/service-role/AWSBackupDefaultServiceRole", //[Source copy role] "arn:aws:iam::[destination-account-id]:role/aws-service-role/backup.amazonaws.com/AWSServiceRoleForBackup"], //[Destination SLR] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }
  • 使用 RAM/MPA 共享的逻辑气隙保管库从恢复账户中复制或恢复时

{ "Sid": "Allow use of the key for copy/restore from a recovery account", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::[recovery-account-id]:role/service-role/AWSBackupDefaultServiceRole", //[Recovery account copy/restore role] "arn:aws:iam::[destination-account-id]:role/aws-service-role/backup.amazonaws.com/AWSServiceRoleForBackup"] //[Destination SLR] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow AWS Backup to create grant on the key for copy", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::[recovery-account-id]:role/service-role/AWSBackupDefaultServiceRole" //[Recovery account copy/restore role] "arn:aws:iam::[destination-account-id]:role/aws-service-role/backup.amazonaws.com/AWSServiceRoleForBackup"], //[Destination SLR] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }

IAM 角色

在执行逻辑上气隙隔离的保管库复制操作时,客户可以使用包括管理策略在内AWSBackupDefaultServiceRole的 AWS。AWSBackupServiceRolePolicyForBackup但是,如果客户更愿意实施最低权限策略方法,则他们的 IAM 政策必须包含特定要求:

  • 源账户的复制角色必须具有对源和目标 CMK 的访问权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissions", "Effect": "Allow", "Action": "kms:DescribeKey", "Resource": [ "arn:aws:kms:*:[source-account-id]:key/*", - Source logically air-gapped vault CMK - "arn:aws:kms:*:[destination-account-id]:key/*". - Destination logically air-gapped vault CMK - ] }, { "Sid": "KMSCreateGrantPermissions", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": [ "arn:aws:kms:*:[source-account-id]:key/*", - Source logically air-gapped vault CMK - "arn:aws:kms:*:[destination-account-id]:key/*". - Destination logically air-gapped vault CMK - ] "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, ] }

因此,当客户未能为其 CMK 和复制角色提供足够的权限时,最常见的客户错误之一发生在复制过程中。

查看加密密钥类型

您可以通过 AWS Backup 控制台查看加密密钥类型信息,也可以使用 AWS CLI 或 SDK 以编程方式查看加密密钥类型信息。

控制台:在控制 AWS Backup 台中查看逻辑气隙保管库时,加密密钥类型显示在保管库详细信息页面的安全信息部分下。

AWS CLI/API:查询逻辑气隙保管库时,将在以下操作的响应中返回加密密钥类型:

  • list-backup-vaults(包括共享--by-shared保管库)

  • describe-backup-vault

  • describe-recovery-point

  • list-recovery-points-by-backup-vault

  • list-recovery-points-by-resource

保管库加密的注意事项

使用逻辑气隙保管库和加密密钥类型时,请考虑以下几点:

  • 创建期间的密钥选择:在创建逻辑气隙保管库时,您可以选择指定客户管理的 KMS 密钥。如果未指定,则将使用 AWS自有密钥。

  • 共享保管库可见性:与之共享保管库的账户可以查看加密密钥类型,但不能修改加密配置。

  • 恢复点信息:在查看逻辑气隙保管库中的恢复点时,也可以使用加密密钥类型。

  • 还原操作:了解加密密钥类型有助于您规划还原操作并了解任何潜在的访问要求。

  • 合规性:加密密钥类型信息通过提供用于备份数据的加密方法的透明度来支持合规性报告和审计要求。

服务自有密钥的使用

AWS Backup 创建和管理加密密钥,这些密钥用于加密存储在逻辑气隙保管库中的所有备份数据,以保护和防止在数据丢失事件期间丢失对加密密钥的访问权限。

  • 这些密钥是免费的,不计入您账户的 AWS KMS 配额。

  • 单个密钥仅用于特定的保管库,不能与任何其他账户或其他目的共享。

  • 一旦分配的(空)保管库也被删除,这些密钥就会被删除。

  • 这些密钥是使用 SYMMETRIC_DEFAULT 密钥规范创建的。

  • 默认轮换政策为 90 天。您可以通过支持通知单(每 6 个月一次)为您的逻辑气隙保管库申请轮换(每 6 个月一次)服务自有加密密钥。

访问AWS KMS 文档以了解更多信息。

安全自动修复注意事项

将 EC2 (AMI) 备份 AWS Backup 复制到逻辑气隙保管库时,它会临时向服务拥有的账户launchPermission(在 AMI 上)和createVolumePermission(在关联的 EBS 快照上)授予权限。复制完成后,这些权限会自动撤销。

这些操作会在您的 AWS CloudTrail 日志中生成ModifyImageAttributeModifySnapshotAttribute事件,userIdentity.invokedBy设置为backup.amazonaws.com

如果您有监控这些事件并撤消跨账户共享的安全自动修复逻辑(例如,Amazon EventBridge 规则 AWS Lambda),则必须排除事件所在位置。userIdentity.invokedBy backup.amazonaws.com否则,将任务复制到逻辑气隙保管库将失败,并显示:“您无权访问此 ami 的存储。”

这种排除是安全的,因为副本是由您的文件库访问策略(backup:CopyFromBackupVault在源文件库和目标文件库backup:CopyIntoBackupVault上)授权的,这些策略是在任何 EC2 属性修改之前进行评估的。临时权限仅授予固定的 AWS 服务拥有的账户,并在复制完成后自动撤销。

排除 AWS Backup 操作的 EventBridge 规则事件模式示例:

{ "source": ["aws.ec2"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["ec2.amazonaws.com"], "eventName": ["ModifySnapshotAttribute", "ModifyImageAttribute"], "userIdentity": { "invokedBy": [{"anything-but": "backup.amazonaws.com"}] } } }

解决逻辑上受物理隔离的保管库问题

如果工作流中出现错误,请查阅以下错误和建议解决方案的示例:

EC2 AMI 向逻辑气隙保管库的复制任务因权限错误而失败

错误Copy job fails with "You do not have permission to access the storage of this ami."

可能的原因:在 EC2 AMI 将任务复制到逻辑气隙保管库期间, AWS Backup 临时向服务拥有的账户授予启动权限 (AMI) 和创建卷权限(EBS 快照),在日志中生成ModifyImageAttributeModifySnapshotAttribute事件。 AWS CloudTrail 如果您有监控这些事件并自动撤消跨账户共享权限的安全自动修复逻辑(例如使用 Lambda 的 EventBridge规则),则它可以在复制完成之前删除临时访问权限。

注意

对于其他资源(如 Amazon FSx)的拷贝任务,也可能发生这种情况。

解决方案:更新您的 EventBridge 规则事件模式以排除由执行的操作 AWS Backup。具体而言,排除当前事件userIdentity.invokedBybackup.amazonaws.com为了确保您的自动修复逻辑不会撤消在复制过程中 AWS Backup 授予的临时跨账户权限。

AccessDeniedException

错误An error occured (AccessDeniedException) when calling the [command] operation: Insufficient privileges to perform this action."

可能的原因:在 RAM 共享的保管库上运行以下请求之一时未包括参数 --backup-vault-account-id

  • describe-backup-vault

  • describe-recovery-point

  • get-recovery-point-restore-metadata

  • list-protected-resources-by-backup-vault

  • list-recovery-points-by-backup-vault

解决方案:重试返回错误的命令,但要包括指定拥有该保管库的账户的参数 --backup-vault-account-id

OperationNotPermittedException

错误:CreateResourceShare 调用后返回 OperationNotPermittedException

可能的原因:如果您尝试与其他组织共享资源(例如逻辑上受物理隔离的保管库),则可能会出现此异常。保管库可以与其他组织内的账户共享,但不能与其他组织本身共享。

解决方案:重试该操作,但指定一个账户(而不是组织或 OU)作为 principals 的值。

未显示加密密钥类型

问题:查看逻辑气隙保管库或其恢复点时,加密密钥类型不可见。

可能的原因:

  • 您正在查看在添加加密密钥类型支持之前创建的旧保管库

  • 您正在使用 AWS CLI 或 SDK 的旧版本

  • API 响应不包含加密密钥类型字段

解决方法:

  • AWS CLI 将您的更新到最新版本

  • 对于较旧的保管库,加密密钥类型将自动填充,并应出现在后续的 API 调用中

  • 验证您使用的是返回加密密钥类型信息的正确的 API 操作

  • 对于共享保管库,请验证保管库是否已通过正确共享 AWS Resource Access Manager

AccessDeniedException 在 CloudTrail 日志中 “失败” VaultState

出现错误 CloudTrail:"User: <assumed role> is not authorized to perform: kms:CreateGrant on this resource because the resource does not exist in this Region, no resource-based policies allow access, or a resource-based policy explicitly denies access"

可能的原因:

  • 保管库是使用客户管理的密钥创建的,但代入的角色对使用该密钥创建保管库所需的密钥策略没有 CreateGrant 权限

解决方法:

无法删除处于 “失败” 状态的恢复访问备份保管库

错误:还原访问备份保管库处于 “失败” 状态。RevokeRestoreAccessBackupVault返回错误,要求保管库处于可用状态,然后CreateRestoreAccessBackupVault返回LimitExceededException

可能的原因:

  • 创建保管库时,密钥库账户中的 KMS 密钥策略未backup.amazonaws.com获得恢复账户的授权。

  • 曾经调用的 IAM 角色CreateRestoreAccessBackupVault没有 Multi-party 批准工作流程所需的mpa:StartSession权限。

解决方案:DeleteBackupVault从恢复账户中调用以删除失败的还原访问备份保管库。RevokeRestoreAccessBackupVault仅适用于处于可用状态的文件库。文件库锁定不会阻止这种删除,因为还原访问权限备份保管库是底层逻辑气隙保管库的视图,本身不包含任何恢复点。删除后,更正 KMS 密钥策略并添加mpa:StartSession权限,然后再重新创建保管库。