如何排查使用 Amazon Data Lifecycle Manager 时遇到的问题?

2 分钟阅读
0

我的 Amazon Data Lifecycle Manager 策略处于错误状态,或者在快照方面未按预期运行。该如何对此类问题进行故障排除?

简短描述

以下是生命周期策略处于错误状态或者无法创建或复制 Amazon Elastic Block Store (Amazon EBS) 快照的常见原因:

  • 生命周期策略未启用。
  • 策略中的权限不正确。
  • 您正在使用 AWS Identity and Access Management(IAM)角色,而不是默认的AWSDataLifecycleManagerDefaultRole,而且信任关系存在问题。
  • 策略中有重复的标签。
  • 策略中定义的某个标签已被使用。
  • 您的资源已加密。

解决方法

注意:如果您在运行 AWS 命令行界面(AWS CLI)命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

未正常创建快照

如果未创建快照,请验证生命周期策略是否已启用。

1.    打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台

2.    选择 Lifecycle Manager,然后验证策略状态是否已设置为 ENABLED(已启用)。

3.    如果策略未设置为 ENABLED(已启用),则依次选择 Actions(操作)、Modify Snapshot Lifecycle Policy(修改快照生命周期策略)。

注意:如果策略状态为ERROR(错误),请参阅以下部分:DLM 策略处于错误状态

4.    选择 Enable policy(启用策略),然后选择 Update policy(更新策略)。

**注意:**在创建生命周期策略后,可能需要一个小时的时间才能创建快照。在至少等待一小时后,打开 Amazon EC2 控制台。然后,选择 Snapshots(快照)来验证是否已创建快照。

无法在区域之间复制快照

如果复制的快照已加密,则用户必须有权访问 AWS Key Management Service(AWS KMS)中的源和目标 AWS KMS 密钥(KMS 密钥)。有关更多信息,请参阅确定访问 AWS KMS 密钥

生命周期策略处于错误状态

处于错误状态的生命周期策略可能是由以下一个或多个问题引起的:

  • 资源标签存在问题。
  • Amazon Data Lifecycle Manager 权限不正确。
  • IAM 权限不正确。

此外,如果您使用的是自定义 IAM 角色,则可能是因为该角色没有附加信任关系。

检查 Amazon CloudWatch Events,查看导致错误状态的原因。以下是常见的错误和解决方法:

标签键重复

如果您的生命周期策略存在重复的标签,则会出现与下面类似的 CloudTrail 事件。在以下示例中,策略中的标签键 Name(名称)重复。

CreateSnapshot @2018-12-24T20:25:58.000Z UTC
"errorCode": "Client.InvalidParameterValue",
 "errorMessage": "Duplicate tag key 'Name' specified.", 
    "requestParameters": {
        "volumeId": "vol-xxxxxxxxxxxx",
        "description": "Created for policy: policy-xxxxschedule: First Schedule",

1.    打开 Amazon EC2 控制台

2.    选择 Lifecycle Manager

3.    选择您的生命周期策略,然后依次选择操作修改生命周期策略

4.    在 Tag created EBS snapshots(给创建的 EBS 快照加标签)部分,将重复标签上的 Key(键)改为唯一的名称。

5.    选择 Update policy(更新策略)。

ID 为 vol-xxxxxxxxxxxx 的资源中已定义标签(名称)

如果在生命周期策略中定义的标签已在其他生命周期策略中使用,则在以下情况下,您可能会遇到问题:

  1. 生命周期策略位于同一个账户中,并且
  2. 生命周期策略面向相同的资源。

在这种情况下,会出现类似于以下内容的 CloudTrail 事件:

CreateSnapshots
---------------------------------------------------------------------------------
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AssumedRole",
   "eventTime": "2020-01-xxxxxxxx",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "CreateSnapshots",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "dlm.amazonaws.com",
    "userAgent": "dlm.amazonaws.com",
    "errorCode": "Client.InvalidParameterCombination",
    "errorMessage": "Tag (Name) is already defined in resource id vol-xxxxxxxx.",
    "requestParameters": {
"requestParameters": {
        "CreateSnapshotsRequest": {
            "Description": "Created for policy: policy-xxxxxxxschedule: Default Schedule",
            "InstanceSpecification": {
                "ExcludeBootVolume": false,
                "InstanceId": "i-xxxxxxx"
            },

卷或实例可以关联多个策略,但策略之间不能重复使用相同的标签。有关更多信息,请参阅 Amazon Data Lifecycle Manager 的注意事项

要纠正此错误,请执行以下操作:

1.    查看您的生命周期策略,找到重复的标签。

2.    使用不同标签创建新的生命周期策略,或者编辑当前的生命周期策略以使用不同标签。

Client.AuthFailure

如果没有给自定义生命周期策略或 IAM 用户设置正确的权限,则可能出现“Client.AuthFailure”错误。以下示例显示的是由于无法访问密钥而引起的 Client.AuthFailure 错误:

"Client.AuthFailure",
"errorMessage": "The specified keyId
arn:aws:kms:us-west-1:xxxxxxxxxxxxx:key/4ad6a1d7-53ac-45a3-8f08-e6eccc948fdd is not accessible",

有关为 Amazon Data Lifecycle Manager 设置权限的说明,请参阅 Amazon Data Lifecycle Manager 的权限

有关为 IAM 用户设置使用 Amazon Data Lifecycle Manager 的权限的说明,请参阅 IAM 用户的权限


相关信息

Amazon Data Lifecycle Manager API 参考

AWS CLI 命令参考 - dlm

AWS 官方
AWS 官方已更新 1 年前