

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

# Amazon Data Lifecycle Manager 的 IAM 服务角色
<a name="service-role"></a>

 AWS Identity and Access Management (IAM) 角色与用户类似，因为它是一个具有权限策略的 AWS 身份，该策略决定了该身份可以做什么和不能做什么 AWS。但是，角色旨在让需要它的任何人代入，而不是唯一地与某个人员关联。服务角色是 AWS 服务代替您执行操作的角色。作为代表您执行备份操作的服务，Amazon Data Lifecycle Manager 要求您在该服务代表您执行策略操作时将其传递给要代入的角色。有关 IAM 角色的更多信息，请参阅《IAM 用户指南》**中的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

您传递给 Amazon Data Lifecycle Manager 的角色必须具有 IAM 策略，该策略的权限使亚马逊数据生命周期管理器能够执行与策略操作相关的操作，例如创建快照和 AMIs、复制快照和 AMIs删除快照以及注销注册 AMIs。每种 Amazon Data Lifecycle Manager 策略类型需要不同的权限。该角色还必须将 Amazon Data Lifecycle Manager 列为可信实体，这使得 Amazon Data Lifecycle Manager 能够代入该角色。

**Topics**
+ [Amazon Data Lifecycle Manager 的原定设置服务角色](#default-service-roles)
+ [Amazon Data Lifecycle Manager 的自定义服务角色](#custom-role)

## Amazon Data Lifecycle Manager 的原定设置服务角色
<a name="default-service-roles"></a>

Amazon Data Lifecycle Manager 使用以下原定设置的服务角色：
+ **AWSDataLifecycleManagerDefaultRole**—管理快照的默认角色。它只信任 `dlm.amazonaws.com` 服务代入该角色，并允许 Amazon Data Lifecycle Manager 代表您执行快照和跨账户快照复制策略所需的操作。此角色使用` AWSDataLifecycleManagerServiceRole` AWS 托管策略。
**注意**  
角色的 ARN 格式会有所不同，具体取决于使用控制台还是 AWS CLI创建角色。如果使用控制台创建角色，则 ARN 格式为 `arn:aws:iam::account_id:role/service-role/AWSDataLifecycleManagerDefaultRole`。如果角色是使用创建的 AWS CLI，则 ARN 格式为。`arn:aws:iam::account_id:role/AWSDataLifecycleManagerDefaultRole`
+ **AWSDataLifecycleManagerDefaultRoleForAMIManagement**—用于管理 AMIs的默认角色。它只信任 `dlm.amazonaws.com` 服务代入该角色，并允许 Amazon Data Lifecycle Manager 代表您执行由 EBS 支持的 AMI 策略所需的操作。此角色使用`AWSDataLifecycleManagerServiceRoleForAMIManagement` AWS 托管策略。

如果您使用的是 Amazon Data Lifecycle Manager 控制台，则在您首次创建快照或跨账户快照复制策略时，Amazon Data Lifecycle Manager 会自动创建**AWSDataLifecycleManagerDefaultRoleForAMIManagement**服务角色，并在您首次创建由 EBS 支持的 AMI 策略时自动创建服务角色。**AWSDataLifecycleManagerDefaultRole**

如果您不使用控制台，则可以使用[create-default-role](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-default-role.html)命令手动创建服务角色。对于`--resource-type`，请`snapshot`指定 “创建 AWSDataLifecycleManagerDefaultRole” 或 `image` “创建” AWSData LifecycleManagerDefaultRoleFor AMIManagement。

```
$ aws dlm create-default-role --resource-type snapshot|image
```

如果您删除了原定设置服务角色，然后需要再次创建，则可以使用相同的流程在您的账户中重新创建它们。

## Amazon Data Lifecycle Manager 的自定义服务角色
<a name="custom-role"></a>

作为使用原定设置服务角色的替代方案，您可以在创建生命周期策略时创建具有所需权限的自定义 IAM 角色，然后选择它们。

**创建自定义 IAM 角色**

1. 创建具有以下权限的角色。
   + 管理快照生命周期策略所需的权限

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:CreateSnapshot",
                     "ec2:CreateSnapshots",
                     "ec2:DeleteSnapshot",
                     "ec2:DescribeInstances",
                     "ec2:DescribeVolumes",
                     "ec2:DescribeSnapshots",
                     "ec2:EnableFastSnapshotRestores",
                     "ec2:DescribeFastSnapshotRestores",
                     "ec2:DisableFastSnapshotRestores",
                     "ec2:CopySnapshot",
                     "ec2:ModifySnapshotAttribute",
                     "ec2:DescribeSnapshotAttribute",
                     "ec2:ModifySnapshotTier",
                     "ec2:DescribeSnapshotTierStatus",
                     "ec2:DescribeAvailabilityZones"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:CreateTags"
                 ],
                 "Resource": "arn:aws:ec2:*::snapshot/*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "events:PutRule",
                     "events:DeleteRule",
                     "events:DescribeRule",
                     "events:EnableRule",
                     "events:DisableRule",
                     "events:ListTargetsByRule",
                     "events:PutTargets",
                     "events:RemoveTargets"
                 ],
                 "Resource": "arn:aws:events:*:*:rule/AwsDataLifecycleRule.managed-cwe.*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:GetCommandInvocation",
                     "ssm:ListCommands",
                     "ssm:DescribeInstanceInformation"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:SendCommand",
                     "ssm:DescribeDocument",
                     "ssm:GetDocument"
                 ],
                 "Resource": [
                     "arn:aws:ssm:*:*:document/*"
                 ],
                 "Condition": {
                     "StringEquals": {
                         "aws:ResourceTag/DLMScriptsAccess": "true"
                     }
                 }
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:SendCommand",
                     "ssm:DescribeDocument",
                     "ssm:GetDocument"
                 ],
                 "Resource": [
                     "arn:aws:ssm:*::document/*"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:SendCommand"
                 ],
                 "Resource": [
                     "arn:aws:ec2:*:*:instance/*"
                 ],
                 "Condition": {
                     "StringNotLike": {
                         "aws:ResourceTag/DLMScriptsAccess": "false"
                     }
                 }
             }
         ]
     }
     ```

------
   + 管理 AMI 生命周期策略所需的权限

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": "ec2:CreateTags",
                 "Resource": [
                     "arn:aws:ec2:*::snapshot/*",
                     "arn:aws:ec2:*::image/*"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:DescribeImages",
                     "ec2:DescribeInstances",
                     "ec2:DescribeImageAttribute",
                     "ec2:DescribeVolumes",
                     "ec2:DescribeSnapshots"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": "ec2:DeleteSnapshot",
                 "Resource": "arn:aws:ec2:*::snapshot/*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:ResetImageAttribute",
                     "ec2:DeregisterImage",
                     "ec2:CreateImage",
                     "ec2:CopyImage",
                     "ec2:ModifyImageAttribute"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:EnableImageDeprecation",
                     "ec2:DisableImageDeprecation"
                 ],
                 "Resource": "arn:aws:ec2:*::image/*"
             }
         ]
     }
     ```

------

   有关更多信息，请参阅*IAM 用户指南*中的[创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)。

1. 向角色添加信任关系。

   1. 在 IAM 控制台中，选择**角色**。

   1. 选择您创建的角色，然后选择**信任关系**。

   1. 选择**编辑信任关系**，添加以下策略，然后选择**更新信任策略**。

------
#### [ JSON ]

****  

      ```
      {
      	"Version":"2012-10-17",		 	 	 
      	"Statement": [{
      		"Effect": "Allow",
      		"Principal": {
      			"Service": "dlm.amazonaws.com"
      		},
      		"Action": "sts:AssumeRole"
      	}]
      }
      ```

------

      建议您使用 `aws:SourceAccount` 和 `aws:SourceArn` 条件键来防止出现[混淆代理人问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)。例如，您可以将以下条件块添加到以前的信任策略。`aws:SourceAccount` 是生命周期策略的所有者，`aws:SourceArn` 是生命周期策略的 ARN。如果您不知道生命周期策略的 ID，可以用通配符（`*`）替换 ARN 的该部分，然后在创建生命周期策略后更新信任策略。

      ```
      "Condition": {
          "StringEquals": {
              "aws:SourceAccount": "account_id"
          },
          "ArnLike": {
              "aws:SourceArn": "arn:partition:dlm:region:account_id:policy/policy_id"
          }
      }
      ```