針對 MemoryDB 使用服務連結角色 - Amazon MemoryDB

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

針對 MemoryDB 使用服務連結角色

MemoryDB 使用 AWS Identity and Access Management (IAM) 服務連結角色 。服務連結角色是直接連結至 AWS 服務的唯一IAM角色類型,例如 MemoryDB 。MemoryDB 服務連結角色是由 MemoryDB 預先定義。此角色包含服務需要的所有許可,以代您來呼叫其他的 AWS 服務。

服務連結角色可讓您更輕鬆地設定 MemoryDB,因為您不需要手動新增必要的許可。角色已存在於 AWS 您的帳戶中,但會連結至 MemoryDB 使用案例,並具有預先定義的許可。只有 MemoryDB 可以擔任這些角色,只有這些角色可以使用預先定義的許可政策。您必須先刪除角色的相關資源,才能刪除角色。這可保護您的 MemoryDB 資源,因為您不會不小心移除存取資源的必要許可。

如需支援服務連結角色的其他 服務的資訊,請參閱服務連結角色欄中AWS 使用的服務IAM,並尋找具有的服務。選擇具有連結的,以檢視該服務的服務連結角色文件。

MemoryDB 的服務連結角色許可

MemoryDB 使用名為 的服務連結角色 AWSServiceRoleForMemoryDB – 此政策允許 MemoryDB 視需要代表您管理 AWS 資源,以管理您的叢集。

AWSServiceRoleForMemoryDB 服務連結角色許可政策允許 MemoryDB 對指定的資源完成下列動作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "AmazonMemoryDBManaged" ] } } }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ResourceTag/AmazonMemoryDBManaged": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "arn:aws:ec2:*:*:security-group/*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "AWS/MemoryDB" } } } ] }

如需詳細資訊,請參閱AWS 受管政策:MemoryDBServiceRolePolicy

允許IAM實體建立 AWSServiceRoleForMemoryDB 服務連結角色

將下列政策陳述式新增至該IAM實體的許可:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*", "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}} }

允許IAM實體刪除 AWSServiceRoleForMemoryDB 服務連結角色

將下列政策陳述式新增至該IAM實體的許可:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*", "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}} }

或者,您可以使用 AWS 受管政策來提供 MemoryDB 的完整存取權。

建立服務連結角色 (IAM)

您可以使用IAM主控台、 CLI或 建立服務連結角色API。

建立服務連結角色 (IAM 主控台)

您可以使用IAM主控台來建立服務連結角色。

建立服務連結角色 (主控台)
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在IAM主控台的左側導覽窗格中,選擇角色 。然後選擇 Create new role (建立新角色)

  3. Select type of trusted entity (選擇可信任的實體類型) 下,選擇 AWS Service (AWS 服務)

  4. 或選取要檢視其使用案例 的服務下,選擇 MemoryDB

  5. 選擇下一步:許可

  6. Policy name (政策名稱),請注意 MemoryDBServiceRolePolicy 是此角色的必要項目。選擇 Next: Add Tags (下一步:新增標籤)

  7. 請注意,服務連結的角色不支援標籤。選擇 Next:Review (下一步:檢閱)

  8. (選擇性) 針對 Role description (角色描述),編輯新服務連結角色的描述。

  9. 檢閱角色,然後選擇 Create role (建立角色)

建立服務連結角色 (IAM CLI)

您可以從 使用 IAM操作 AWS Command Line Interface 來建立服務連結角色。此角色可包含服務擔任該角色所需的信任政策與內嵌政策。

建立服務連結角色 (CLI)

使用以下操作:

$ aws iam create-service-linked-role --aws-service-name memorydb.amazonaws.com

建立服務連結角色 (IAM API)

您可以使用 IAMAPI來建立服務連結角色。此角色可包含服務擔任該角色所需的信任政策與內嵌政策。

建立服務連結角色 (API)

使用 CreateServiceLinkedRole API 呼叫。在請求中指定 memorydb.amazonaws.com 的服務名稱。

編輯 MemoryDB 的服務連結角色描述

MemoryDB 不允許您編輯 AWSServiceRoleForMemoryDB 服務連結角色。因為有各種實體可能會參考服務連結角色,所以您無法在建立角色之後變更角色名稱。不過,您可以使用 編輯角色的描述IAM。

編輯服務連結角色描述 (IAM 主控台)

您可以使用 IAM 主控台來編輯服務連結角色描述。

編輯服務連結角色的說明 (主控台)
  1. 在IAM主控台的左側導覽窗格中,選擇角色

  2. 選擇要修改之角色的名稱。

  3. Role description (角色說明) 的最右邊,選擇 Edit (編輯)。

  4. 在方塊中輸入新的描述,然後選擇 Save (儲存)

編輯服務連結角色描述 (IAM CLI)

您可以從 使用 IAM操作 AWS Command Line Interface 來編輯服務連結角色描述。

變更服務連結角色的描述 (CLI)
  1. (選用) 若要檢視角色的目前描述,請將 AWS CLI 用於IAM操作 get-role

    $ aws iam get-role --role-name AWSServiceRoleForMemoryDB

    使用角色名稱,而非 ARN,以參考具有 CLI操作的角色。例如,如果角色具有下列 ARN:arn:aws:iam::123456789012:role/myrole,請將角色稱為 myrole

  2. 若要更新服務連結角色的描述,請將 AWS CLI 用於IAM操作 update-role-description

    若為 Linux、macOS 或 Unix:

    $ aws iam update-role-description \ --role-name AWSServiceRoleForMemoryDB \ --description "new description"

    針對 Windows:

    $ aws iam update-role-description ^ --role-name AWSServiceRoleForMemoryDB ^ --description "new description"

編輯服務連結角色描述 (IAM API)

您可以使用 IAM API 編輯服務連結角色描述。

若要變更服務連結角色的描述 (API)
  1. (選用) 若要檢視角色的目前描述,請使用 IAMAPI操作 GetRole.

    https://iam.amazonaws.com/ ?Action=GetRole &RoleName=AWSServiceRoleForMemoryDB &Version=2010-05-08 &AUTHPARAMS
  2. 若要更新角色的描述,請使用 IAMAPI操作 UpdateRoleDescription.

    https://iam.amazonaws.com/ ?Action=UpdateRoleDescription &RoleName=AWSServiceRoleForMemoryDB &Version=2010-05-08 &Description="New description"

刪除 MemoryDB 的服務連結角色

若您不再使用需要服務連結角色的功能或服務,我們建議您刪除該角色。如此一來,您就沒有未主動監控或維護的未使用實體。然而,務必清除您的服務連結角色,之後才能將其刪除。

MemoryDB 不會為您刪除服務連結角色。

清除服務連結角色

在您使用 IAM 刪除服務連結角色之前,請先確認角色沒有與其相關聯的資源 (叢集)。

檢查服務連結角色在IAM主控台中是否具有作用中工作階段
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在IAM主控台的左側導覽窗格中,選擇角色 。然後選擇 AWSServiceRoleForMemoryDB 角色的名稱 (而非核取方塊)。

  3. 在所選角色的 Summary (摘要) 頁面中,選擇 Access Advisor (存取 Advisor) 分頁。

  4. Access Advisor (存取 Advisor) 分頁中,檢閱服務連結角色的近期活動。

刪除需要 AWSServiceRoleForMemoryDB (主控台) 的 MemoryDB 資源

刪除服務連結角色 (IAM 主控台)

您可以使用 IAM 主控台來刪除服務連結角色。

刪除服務連結角色 (主控台)
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在IAM主控台的左側導覽窗格中,選擇角色 。然後,選擇您要刪除的角色名稱旁的核取方塊,而非名稱或資料列本身。

  3. 在頁面頂端的 Role (角色) 動作中選擇 Delete (刪除) 角色。

  4. 在確認頁面中,檢閱服務上次存取的資料,以顯示每個所選角色上次存取 AWS 服務的時間。這可協助您確認角色目前是否作用中。如果您想要繼續進行,請選擇 Yes, Delete (是,刪除) 來提交服務連結角色以進行刪除。

  5. 觀看IAM主控台通知,以監控服務連結角色刪除的進度。由於IAM服務連結角色刪除是非同步的,因此在您提交角色以供刪除之後,刪除任務可能會成功或失敗。如果任務失敗,您可以從通知中選擇 View details (檢視詳細資訊)View Resources (檢視資源),以了解刪除失敗的原因。

刪除服務連結角色 (IAM CLI)

您可以從 使用 IAM 操作 AWS Command Line Interface 來刪除服務連結角色。

若要刪除服務連結角色 (CLI)
  1. 如果您不知道想要刪除的服務連結角色名稱,請輸入以下命令。此命令會列出您帳戶中的角色及其 Amazon Resource Names (ARNs)。

    $ aws iam get-role --role-name role-name

    使用角色名稱,而非 ARN,以參考具有 CLI操作的角色。例如,如果角色具有 ARN arn:aws:iam::123456789012:role/myrole,您會將角色稱為 myrole

  2. 因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則可以拒絕該請求。您必須從回應中擷取 deletion-task-id,以檢查刪除任務的狀態。輸入下列內容,提交服務連結角色刪除請求。

    $ aws iam delete-service-linked-role --role-name role-name
  3. 輸入下列內容來檢查刪除任務的狀態。

    $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

    刪除任務的狀態可以是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。

刪除服務連結角色 (IAM API)

您可以使用 IAMAPI刪除服務連結角色。

若要刪除服務連結角色 (API)
  1. 若要提交服務連結卷的刪除請求,請呼叫 DeleteServiceLinkedRole。 在請求中,指定角色名稱。

    因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則可以拒絕該請求。您必須從回應中擷取 DeletionTaskId,以檢查刪除任務的狀態。

  2. 若要檢查刪除的狀態,請呼叫 GetServiceLinkedRoleDeletionStatus。 在 請求中,指定 DeletionTaskId

    刪除任務的狀態可以是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。