Python boto Amazon RDS error: KMSKeyNotAccessibleFault

Python boto Amazon RDS error: KMSKeyNotAccessibleFault

我正在尝试从快照创建 Amazon RDS 数据库,但出现此错误:

botocore.errorfactory.KMSKeyNotAccessibleFault: An error occurred (KMSKeyNotAccessibleFault) when calling the RestoreDBInstanceFromDBSnapshot operation: The specified KMS key [arn:aws:kms:ap-southeast-2:ddddddddd] does not exist, is not enabled or you do not have permissions to access it.

我不确定我的 Jenkins 作业需要哪些权限才能 运行 此任务。它只是一个只读的 IAM 策略吗?

转到 IAM 控制台,选择左侧栏中的加密密钥菜单

从下拉菜单中选择地区("Create Key" 按钮正下方)

搜索提到的密钥,看看是否存在。

如果不存在,您将永远无法从快照中恢复RDS 实例。 如果存在,

  1. 查看Key状态是否为Enabled。如果不是,select 复选框并选择 "Actions -> Enable"
  2. 点击它。在 "Key Policy" -> "Key Users" 下,添加您的 IAM 用户 并且您将能够从快照恢复 RDS 实例。

以上答案是正确的,但如果您仍然遇到错误,请尝试将此添加到密钥策略中:

...
"Action": [
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:RevokeGrant"
],
"Resource": "*",
"Condition": {"Bool": {"kms:GrantIsForAWSResource": "true"}}

参考:https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html