IAM 服務角色 - Amazon EBS

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

IAM 服務角色

AWS Identity and Access Management (IAM) 角色與使用者類似,因為它是具有許可政策的 AWS 身分識別,可決定身分可以執行和不能在其中執行的動作 AWS。但是,角色的目的是讓需要它的任何人可代入,而不是單獨地與某個人員關聯。服務角色是服 AWS 務假定代表您執行動作的角色。作為代表您執行備份操作的服務,Amazon Data Lifecycle Manager 需要獲得您傳遞的角色,以在代表您進行政策操作時擔任該角色。如需 IAM 角色的更多相關資訊,請參閱 IAM 使用者指南中的 IAM 角色

您傳遞給 Amazon Data Lifecycle Manager 的角色必須具有 IAM 政策,其許可可讓 Amazon Data Lifecycle Manager 執行與政策操作相關的動作,例如建立快照和 AMI、複製快照和 AMI、刪除快照,以及取消註冊 AMI。Amazon Data Lifecycle Manager 的各政策類型需要不同的許可。該角色也必須將 Amazon Data Lifecycle Manager 列為信任實體,以讓 Amazon Data Lifecycle Manager 擔任該角色。

Amazon Data Lifecycle Manager 的預設服務角色

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 命令手動建立服務角色。對於--resource-type,指定snapshot要建立 AWSDataLifecycleManagerDefaultRole或image要建立 AWSDataLifecycleManagerDefaultRoleForAMIManagement。

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

若您刪除預設服務角色,之後需要再次建立,您可以在帳戶中使用相同程序重新建立它們。

Amazon Data Lifecycle Manager 的自訂服務角色

作為使用預設服務角色的替代方案,您可以建立具備必要許可的自訂 IAM 角色,然後在建立生命週期政策時選取這些角色。

建立自訂 IAM 角色
  1. 建立具有下列許可的角色。

    • 管理快照生命週期政策所需的許可

      { "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" ], "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 生命週期政策所需的許可

      { "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 使用者指南中的建立角色

  2. 將信任關係新增至角色。

    1. 在 IAM 主控台,選擇 Roles (角色)

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

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

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

      建議您使用 aws:SourceAccountaws:SourceArn 條件金鑰,保護自己免受混淆代理人問題的困擾。例如,您可以將下列條件區塊新增至先前的信任政策。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" } }