為 Amazon ElastiCache 使用服務連結角色 - Amazon ElastiCache (雷迪斯 OSS)

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

為 Amazon ElastiCache 使用服務連結角色

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

服務連結角色可讓設定 Amazon ElastiCache 更為簡單,因為您不必手動新增必要的許可。角色已在 AWS 帳戶中,但會連結到 Amazon ElastiCache 使用案例,且已具備預先定義的許可。只有 Amazon ElastiCache 可以擔任這些角色,且只有這些角色可以使用預先定義的許可政策。您必須先刪除角色的相關資源,才能刪除角色。這可保護您的 Amazon ElastiCache 資源,避免您不小心移除存取資源所需的許可。

如需關於支援服務連結角色的其他服務的資訊,請參閱可搭配 IAM 運作的 AWS 服務,並尋找 Service-Linked Role (服務連結角色) 欄顯示為 Yes (是) 的服務。選擇具有連結的,以檢視該服務的服務連結角色文件。

Amazon ElastiCache 的服務連結角色許可

建立服務連結角色的許可

允取 IAM 實體建立 AWSServiceRoleForElastiCache 服務連結角色

將以下政策陳述式新增到該 IAM 實體的許可中:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWSServiceRoleForElastiCache*", "Condition": {"StringLike": {"iam:AWSServiceName": "elasticache.amazonaws.com"}} }

允取 IAM 實體刪除 AWSServiceRoleForElastiCache 服務連結角色

將以下政策陳述式新增到該 IAM 實體的許可中:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWSServiceRoleForElastiCache*", "Condition": {"StringLike": {"iam:AWSServiceName": "elasticache.amazonaws.com"}} }

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

建立服務連結角色 (IAM)

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

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

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

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

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

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

  4. Or select a service to view its use cases (或者選取服務以檢視其使用案例) 下,選擇 ElastiCache

  5. 選擇 Next: Permissions (下一步:許可)。

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

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

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

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

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

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

建立服務連結角色 (CLI)

使用以下操作:

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

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

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

建立服務連結角色 (API)

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

編輯 Amazon ElastiCache 服務連結角色的描述

Amazon ElastiCache 不允許您編輯 AWSServiceRoleForElastiCache service-linked 服務連結角色。因為有各種實體可能會參考服務連結角色,所以您無法在建立角色之後變更角色名稱。然而,您可使用 IAM 來編輯角色描述。

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

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

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

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

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

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

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

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

變更服務連結角色的說明 (CLI)
  1. (選用) 若要檢視角色的目前描述,請使用 AWS CLI 執行 IAM 作業 get-role

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

    透過 CLI 操作,使用角色名稱 (而非 ARN) 來參照角色。例如,如果角色具有下列 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 AWSServiceRoleForElastiCache \ --description "new description"

    針對 Windows:

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

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

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

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

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

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

刪除 Amazon ElastiCache 的服務連結角色

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

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

清除服務連結角色

您必須先確認角色沒有與該角色相關聯的資源、叢集或複寫群組,才能使用 IAM 來刪除服務連結角色。

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

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

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

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

刪除需要 AWSServiceRoleForElastiCache 的 Amazon ElastiCache 資源

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

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

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

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

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

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

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

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

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

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

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

    透過 CLI 操作,使用角色名稱 (而非 ARN) 來參照角色。例如,如果角色的 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)

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

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

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

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

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