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

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

建立服務連結角色

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

注意

請記得,服務角色與服務連結角色不同。服務角色是服務假定代表您執行動作的IAM角色。IAM管理員可以從中建立、修改和刪除服務角色IAM。如需詳細資訊,請參閱《IAM使用指南》 AWS 服務中的建立角色以將權限委派給 服務連結角色是一種連結至. 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 SNS、Amazon、亞馬遜 CloudWatch 日誌和 Amazon Kinesis。如果您允許帳戶中的使用者和角色修改或建立資RDS料庫,則他們可以透過呼叫與 Amazon EC2、Amazon SNS、Amazon CloudWatch 日誌記錄和 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