建立服務連結角色 - AWS Identity and Access Management

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

建立服務連結角色

服務連結角色是直接連結至服務 AWS 的唯一IAM角色類型。服務連結角色是由 服務預先定義,並包含服務 AWS 代表您呼叫其他服務所需的所有許可。連結的服務也定義您如何建立、修改和刪除服務連結的角色。服務可能會自動建立或刪除角色。做為服務中精靈或程序一部分,它也許可讓您建立、修改或刪除角色。或者,您可能需要使用 IAM 來建立或刪除角色。不論採用何種方式,服務連結角色可簡化設定服務流程,因為您不必手動新增服務許可,以代表您完成動作。

注意

請記得,服務角色與服務連結角色不同。服務角色是IAM服務擔任的角色,以代表您執行動作。IAM 管理員可以從 內部建立、修改和刪除服務角色IAM。如需詳細資訊,請參閱 使用者指南 中的建立角色以將許可委派給 AWS 服務IAM 服務連結角色是連結至 的服務角色類型 AWS 服務。服務可以擔任代表您執行動作的角色。服務連結角色會顯示在您的 中 AWS 帳戶 ,並由服務擁有。IAM 管理員可以檢視,但不能編輯服務連結角色的許可。

連結的服務定義其服務連結角色的許可,除非另有定義,否則僅有該服務可以擔任其角色。定義的許可包括信任政策和許可政策,該許可政策無法連接到任何其他IAM實體。

在您刪除角色之前,您必須首先刪除它們的相關資源。這可保護您的資源,避免您不小心移除資源的存取許可。

提示

如需哪些服務支援使用服務連結角色的資訊,請參閱 AWS 使用 的 服務 IAM,並尋找 Service-Linked Role (服務連結角色) 欄中顯示 Yes (是) 的服務。選擇具有連結的 Yes (是),以檢視該服務的服務連結角色文件。

服務連結角色許可

您必須為IAM實體 (使用者或角色) 設定許可,以允許使用者或角色建立或編輯服務連結角色。

注意

服務連結角色ARN的 包含服務主體,其在下列政策中表示為 SERVICE-NAME.amazonaws.com。請勿嘗試猜測服務主體,因為它區分大小寫,而且格式可能因 AWS 服務而異。若要檢視服務的服務主體,請參閱該服務連結的角色文件。

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

將下列政策新增至需要建立服務連結角色的IAM實體。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*", "Condition": {"StringLike": {"iam:AWSServiceName": "SERVICE-NAME.amazonaws.com"}} }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*" } ] }

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

將下列陳述式新增至需要建立服務連結角色的IAM實體許可政策,或任何包含所需政策的服務角色。此政策陳述式不允許IAM實體將政策連接至角色。

{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

允許IAM實體編輯任何服務角色的描述

將下列陳述式新增至需要編輯服務連結角色或任何服務角色描述的IAM實體的許可政策。

{ "Effect": "Allow", "Action": "iam:UpdateRoleDescription", "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

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

將下列陳述式新增至需要刪除服務連結角色之IAM實體的許可政策。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/SERVICE-NAME.amazonaws.com/SERVICE-LINKED-ROLE-NAME-PREFIX*" }

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

將下列陳述式新增至需要刪除服務連結角色的IAM實體的許可政策,但不是服務角色。

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/*" }

允許IAM實體將現有角色傳遞至服務

有些 AWS 服務可讓您將現有角色傳遞給 服務,而不是建立新的服務連結角色。若要執行此操作,使用者必須擁有傳遞角色給服務的許可。將下列陳述式新增至需要傳遞角色之IAM實體的許可政策。透過這個政策陳述式,實體也可以檢視角色清單,並從中選擇要傳遞的角色。如需詳細資訊,請參閱授與使用者將角色傳遞給 AWS 服務的權限

{ "Sid": "PolicyStatementToAllowUserToListRoles", "Effect": "Allow", "Action": ["iam:ListRoles"], "Resource": "*" }, { "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/my-role-for-XYZ" }

具有服務連結角色的間接許可

可將服務連結角色授予的許可間接轉移給其他使用者和角色。當 AWS 服務使用服務連結角色時,該服務連結角色可以使用其自己的許可來呼叫其他服務 AWS 。這表示使用者和角色 (具有呼叫使用服務連結角色之服務的許可) 可能會間接存取該服務連結角色所能存取的服務。

例如,當您建立 Amazon RDS 資料庫執行個體時,如果服務連結角色不存在,則會自動建立 的服務連結角色RDS。此服務連結角色允許 代表您RDS呼叫 Amazon EC2、Amazon 、Amazon CloudWatch Logs SNS和 Amazon Kinesis。如果您允許帳戶中的使用者和角色修改或建立RDS資料庫,則他們可以透過呼叫 間接與 Amazon EC2、Amazon SNS、Amazon CloudWatch Logs 日誌和 Amazon Kinesis 資源互動RDS,就像使用其服務連結角色來存取這些資源RDS一樣。

建立服務連結角色

您用來建立服務連結角色的方法取決於服務。在某些情況下,您不需要手動建立一個服務連結角色。例如,當您在服務中完成特定動作 (例如建立資源),該服務可能會為您建立服務連結角色。或者,您若在服務開始支援服務連結角色之前已在使用該服務,則服務可能已在您的帳戶中自動建立角色。如需進一步了解,請參閱 顯示在我的 AWS 帳戶中的新角色

在其他情況下,服務可能支援使用服務主控台、 API或 手動建立服務連結角色CLI。如需哪些服務支援使用服務連結角色的資訊,請參閱 AWS 使用 的 服務 IAM,並尋找 Service-Linked Role (服務連結角色) 欄中顯示 Yes (是) 的服務。若要了解服務是否支援建立服務連結角色,請選擇連結以檢視該服務的服務連結角色的文件。

如果服務不支援建立角色,您可以使用 IAM來建立服務連結角色。

重要

服務連結角色會計入限制IAM中的角色 AWS 帳戶,但如果您已達到限制,您仍然可以在帳戶中建立服務連結角色。只有服務連結角色可以超過限制。

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

在 中建立服務連結角色之前IAM,請先了解連結的服務是否會自動建立服務連結角色,此外,了解您是否可以從服務的主控台、 API或 建立角色CLI。

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

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

  3. 選擇 AWS Service (服務) 角色類型。

  4. 選擇服務的使用案例。服務會定義使用案例,以包含服務所需的信任政策。然後選擇下一步

  5. 選擇一或多個許可政策以連接至角色。根據您選取的使用案例,服務可能可以執行下列任何操作:

    • 定義角色使用的許可。

    • 可讓您從有限的一組許可中進行選擇。

    • 可讓您從任何許可中進行選擇。

    • 可讓您目前無法選取政策、稍後建立政策,然後將它們連接至角色.

    選取可指派您希望角色擁有之許可政策旁的核取方塊,然後選擇 Next (下一步)。

    注意

    您指定的許可適用於任何使用角色的實體。角色預設沒有任何許可。

  6. 針對 Role name (角色名稱),服務會定義角色名稱自訂程度。如果服務定義角色的名稱,則此選項無法編輯。在其他情況下,服務可能會定義角色的字首,並且允許您輸入選用後綴。

    如果可能,輸入要新增至預設名稱的角色名稱後綴。此後綴可協助您識別此角色的用途。角色名稱在您的 AWS 帳戶內必須是獨一無二的。它們無法透過大小寫進行區分。例如,您無法建立名為 <service-linked-role-name>_SAMPLE<service-linked-role-name>_sample 的角色。因為有各種實體可能會參照角色,所以您無法在建立角色之後編輯角色名稱。

  7. (選用) 在 Description (說明) 中,編輯新服務連結角色的說明。

  8. 您不能在建立角色時,將標籤連接至服務連結的角色。如需在 中使用標籤的詳細資訊IAM,請參閱 AWS Identity and Access Management 資源標籤

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

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

在 中建立服務連結角色之前IAM,請先了解連結的服務是否會自動建立服務連結角色,以及是否可以從服務的 建立角色CLI。如果CLI不支援該服務,您可以使用 IAM 命令來建立具有信任政策和內嵌政策的服務連結角色,服務需要擔任該角色。

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

執行以下命令:

aws iam create-service-linked-role --aws-service-name SERVICE-NAME.amazonaws.com

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

在 中建立服務連結角色之前IAM,請先了解連結的服務是否會自動建立服務連結角色,以及是否可以從服務的 建立角色API。如果API不支援該服務,您可以使用 AWS API來建立具有信任政策和內嵌政策的服務連結角色,該政策是服務擔任該角色所需的。

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

使用 CreateServiceLinkedRoleAPI呼叫。在請求中指定 SERVICE_NAME_URL.amazonaws.com 的服務名稱。

例如,要建立 Lex Bots 服務連結的角色,使用 lex.amazonaws.com