

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 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 政策，其許可可讓 Amazon Data Lifecycle Manager 執行與政策操作相關的動作，例如建立快照和 AMI、複製快照和 AMI、刪除快照，以及取消註冊 AMI。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**：管理 AMI 的預設角色。它只信任 `dlm.amazonaws.com` 服務擔任該角色，並允許 Amazon Data Lifecycle Manager 代表您執行 EBS 後端 AMI 政策所需的動作。此角色使用 `AWSDataLifecycleManagerServiceRoleForAMIManagement` AWS 受管政策。

如果您使用的是 Amazon Data Lifecycle Manager 主控台，Amazon Data Lifecycle Manager 會在您首次建立快照或跨帳戶快照複本政策時，自動建立 **AWSDataLifecycleManagerDefaultRole** 服務角色，並在您首次建立 EBS 後端 AMI 政策時，自動建立 **AWSDataLifecycleManagerDefaultRoleForAMIManagement** 服務角色。

如果您不使用主控台，可以使用 [create-default-role](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-default-role.html) 命令手動建立服務角色。對於 `--resource-type`，指定 `snapshot` 來建立 AWSDataLifecycleManagerDefaultRole，或指定 `image` 來建立 AWSDataLifecycleManagerDefaultRoleForAMIManagement。

```
$ 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 主控台，選擇 **Roles (角色)**。

   1. 選取您建立的角色，然後選取 **Trust relationships** (信任關係)。

   1. 選擇 **Edit Trust Relationships (編輯信任關係)**，新增下列政策，然後選擇 **Update Trust Policy (更新信任政策)**。

------
#### [ 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"
          }
      }
      ```