自訂 IAM 角色 - Amazon EMR

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

自訂 IAM 角色

您可能想要自訂 IAM 服務角色和許可,以根據您的安全需求限制權限。若要自訂許可,我們建議您建立新角色和政策。從預設角色之受管政策中的許可開始 (例如,AmazonElasticMapReduceforEC2RoleAmazonElasticMapReduceRole)。然後,複製內容並將其貼到新政策陳述式、修改適當的許可,並將修改的許可政策連接到您建立的角色。您必須擁有適當的 IAM 許可,才可處理角色和政策。如需詳細資訊,請參閱 允許使用者和群組以建立和修改角色

如果您為 EC2 建立自訂 EMR 角色,請遵循基本工作流程,此工作流程會自動建立相同名稱的執行個體設定檔。Amazon EC2 可讓您建立不同名稱的執行個體設定檔和角色,但是 Amazon EMR 不支援此組態,且在建立叢集時會導致「無效的執行個體設定檔」錯誤。

重要

在服務需求變更時,系統不會自動更新內嵌原則。如果您建立並附接內嵌政策,請注意,服務更新可能會突然導致許可錯誤。如需詳細資訊,請參閱《IAM 使用者指南》中的管理政策和內嵌政策建立叢集時指定自訂 IAM 角色

如需有關使用 IAM 角色的詳細資訊,請參閱《IAM 使用者指南》中的下列主題:

建立叢集時指定自訂 IAM 角色

您可以在建立叢集時指定 Amazon EMR 的服務角色和 Amazon EC2 執行個體設定檔的角色。建立叢集的使用者需要許可才能擷取角色並將其指派至 Amazon EMR 和 EC2 執行個體。否則,帳戶無權呼叫 EC2 錯誤會發生。如需詳細資訊,請參閱 允許使用者和群組以建立和修改角色

使用主控台來指定自訂規則

建立叢集時,您可以使用進階選項指定 Amazon EMR 的自訂服務角色、EC2 執行個體設定檔的自訂角色和自訂 Auto Scaling 角色。使用 Quick options (快速選項) 時,會指定 EC2 執行個體描述檔的預設服務角色和預設角色。如需詳細資訊,請參閱 Amazon EMR 使用的 IAM 服務角色

注意

我們已重新設計 Amazon EMR 主控台,可讓您更輕鬆地使用。請參閱 Amazon EMR 控制台 以了解舊的和新的主控台體驗之間的差異。

New console
使用新主控台指定自訂 IAM 角色

在使用新主控台建立叢集時,您必須指定 Amazon EMR 的自訂服務角色和 EC2 執行個體設定檔的自訂角色。如需詳細資訊,請參閱 Amazon EMR 使用的 IAM 服務角色

  1. 登入並開啟 Amazon EMR 主控台 AWS Management Console,網址為 https://console.aws.amazon.com/emr

  2. 在左側導覽窗格中的 EC2 上的 EMR 下,選擇叢集,然後選擇建立叢集

  3. 安全組態和許可下,尋找執行個體設定檔的 IAM 角色Amazon EMR 的服務角色欄位。對於每個角色類型,從清單中選取一個角色。只有在帳戶中具有該角色類型之適當信任政策的角色才會列出。

  4. 選擇適用於您的叢集的任何其他選項。

  5. 若要啟動您的叢集,請選擇建立叢集

Old console
使用舊主控台指定自訂 IAM 角色

使用舊主控台建立叢集時,您可以使用進階選項指定 Amazon EMR 的自訂服務角色、EC2 執行個體設定檔的自訂角色和自訂 Auto Scaling 角色。使用 Quick options (快速選項) 時,會指定 EC2 執行個體描述檔的預設服務角色和預設角色。如需詳細資訊,請參閱 Amazon EMR 使用的 IAM 服務角色

  1. 導覽至新的 Amazon EMR 主控台,然後從側邊導覽選取切換至舊主控台。如需有關切換至舊主控台時預期情況的詳細資訊,請參閱使用舊主控台

  2. 選擇 Create cluster (建立叢集),然後選擇 Go to advanced options (前往進階選項)

  3. 選擇適用於應用程式的叢集設定,直到您達到 Security Options (安全選項)。在許可下,Amazon EMR 的預設角色會被選取。

  4. 選擇 Custom (自訂)

  5. 對於每個角色類型,從清單中選取一個角色。只有在帳戶中具有該角色類型之適當信任政策的角色才會列出。

  6. 選擇適用於叢集的其他選項,然後選擇 Create Cluster (建立叢集)

使用指 AWS CLI 定自訂角色

您可以將選項與 AWS CLI中的 create-cluster 命令搭配使用來明確指定 Amazon EMR 的服務角色和叢集 EC2 執行個體的服務角色。使用 --service-role 選項來指定服務角色。使用 InstanceProfile 選項的 --ec2-attributes 引數,來指定 EC2 執行個體設定檔的角色。

會使用單獨的選項 --auto-scaling-role 來指定 Auto Scaling 角色。如需詳細資訊,請參閱 針對執行個體群組,搭配使用自動擴展與自訂政策

若要指定自訂 IAM 角色,請使用 AWS CLI
  • 以下命令會在啟動叢集時,指定自訂服務角色 (MyCustomServiceRoleForEMR) 以及 EC2 執行個體設定檔的自訂角色 (MyCustomServiceRoleForClusterEC2Instances)。此範例使用預設 Amazon EMR 角色。

    注意

    包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。

    aws emr create-cluster --name "Test cluster" --release-label emr-7.1.0 \ --applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \ --ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\ KeyName=myKey --instance-type m5.xlarge --instance-count 3

您可以使用這些選項 (而不是使用 --use-default-roles 選項) 來明確指定預設角色。--use-default-roles 選項指定服務角色和 AWS CLI的 config 檔案中定義的 EC2 執行個體設定檔。 。

下列範例示範針對 Amazon EMR 指 AWS CLI 定自訂角色的config檔案內容。透過此組態檔案,在指定 --use-default-roles 選項時,會使用 MyCustomServiceRoleForEMRMyCustomServiceRoleForClusterEC2Instances 建立叢集。根據預設,config 檔案指定預設的 service_roleAmazonElasticMapReduceRole,且預設的 instance_profileEMR_EC2_DefaultRole

[default] output = json region = us-west-1 aws_access_key_id = myAccessKeyID aws_secret_access_key = mySecretAccessKey emr = service_role = MyCustomServiceRoleForEMR instance_profile = MyCustomServiceRoleForClusterEC2Instances