跳至内容

如何解决处于“加密无法访问”状态的 Amazon RDS 实例或 Aurora 集群?

2 分钟阅读
0

我想解决处于“加密无法访问”状态的 Amazon Relational Database Service (Amazon RDS) 数据库实例或 Amazon Aurora 数据库集群。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

**重要事项:**最佳做法是对加密的 Amazon RDS 实例和 Aurora 集群启用备份。有关详细信息,请参阅确定是否对数据库实例启用加密确定是否对数据库集群启用加密

Inaccessible-encryption-credentials-recoverable state

您的 Amazon RDS 数据库实例或 Aurora 数据库集群必须能够访问 AWS Key Management Service (AWS KMS) 加密密钥。如果实例或集群无法访问 AWS KMS 加密密钥,则集群或实例会进入 inaccessible-encryption-credentials-recoverable 状态。

要解决 inaccessible-encryption-credentials-recoverable 状态,请执行以下操作:

  • 确认具有 AWS KMS 密钥的 AWS 账户处于活动状态。
    **注意:**如果账户被暂停,请重新激活已暂停账户

  • 确认您已启用 AWS KMS 密钥

  • 检查 AWS KMS 密钥是否已计划删除。如果密钥已计划删除,请取消计划的密钥删除。

  • 使用 AWS CloudShell 重启您的数据库实例或集群。或者,运行以下 AWS CLI 命令之一来重启您的 Amazon RDS 或 Aurora 实例或集群。
    要重启 Amazon RDS 数据库实例,请运行以下 start-db-instance 命令:

    aws rds start-db-instance --db-instance-identifier example-instance

    **注意:**请将 example-instance 替换为您的 Amazon RDS 实例名称。

    要重启您的 Aurora 数据库集群,请运行 start-db-cluster 命令:

    aws rds start-db-cluster --db-cluster-identifier example-cluster

    **注意:**请将 example-cluster 替换为您的 Aurora 集群名称。

Inaccessible-encryption-credentials state

如果 Amazon RDS 实例或 Aurora 集群在 7 天内未恢复,则该实例或集群会移至终端状态 inaccessible-encryption-credentials

由于您无法停止具有只读副本、跨区域只读副本和区域内只读副本的数据库实例,因此这些实例会绕过可恢复状态。当 Amazon RDS 实例在 2 小时后无法访问 AWS KMS 密钥时,实例会直接过渡到终端状态 inaccessible-encryption-credentials

要解决 inaccessible-encryption-credentials 状态,请将快照还原为新的 Amazon RDS 实例Aurora 集群。或者,在指定时间段内对新的 Amazon RDS 实例Aurora 集群执行时间点故障恢复 (PITR)。

**注意:**您必须拥有 AWS KMS 密钥才能执行快照还原或 PITR。如果您删除或丢失了 AWS KMS 密钥,则无法恢复数据。

如果您无法删除处于 inaccessible-encryption-credential 状态的数据库实例或集群,请使用 AWS CLI 关闭删除保护。

  • 对于 Amazon RDS 实例,请运行 modify-db-instance 命令:
    aws rds modify-db-instance --db-instance-identifier example-instance --no-deletion-protection
    **注意:**请将 example-instance 替换为您的实例名称。
  • 对于 Aurora 集群,请运行 modify-db-cluster 命令:
    aws rds modify-db-cluster --db-cluster-identifier example-cluster --no-deletion-protection
    **注意:**请将 example-cluster 替换为您的集群名称。

要删除处于 inaccessible-encryption-credentials 状态的 Amazon RDS 数据库实例或 Aurora 集群,请运行以下 AWS CLI 命令。

  • 对于 Amazon RDS 实例,请运行 delete-db-instance 命令:
    aws rds delete-db-instance --db-instance-identifier example-instance --skip-final-snapshot
    **注意:**请将 example-instance 替换为您的 Amazon RDS 实例名称。
  • 对于 Aurora 集群,请运行以下 delete-db-cluster 命令:
    aws rds delete-db-cluster --db-cluster-identifier example-cluster --skip-final-snapshot
    **注意:**请将 example-cluster 替换为您的 Amazon Aurora 集群名称。

如果 Amazon RDS 实例或 Aurora 集群在您运行上述命令后仍未删除,请联系 AWS Support。

相关信息

加密 Amazon RDS 资源

加密 Aurora 资源