使用 Amazon 自訂IAM角色 EMR - Amazon EMR

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

使用 Amazon 自訂IAM角色 EMR

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

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

重要

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

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

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

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

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

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

Console
使用主控台指定自訂IAM角色

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

  1. 登入 AWS Management Console,然後在 https://console.aws.amazon.com/emr 開啟 Amazon EMR主控台。

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

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

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

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

使用 AWS CLI 指定自訂角色

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

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

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

    注意

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

    aws emr create-cluster --name "Test cluster" --release-label emr-7.3.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 選項會指定 檔案中定義的EC2執行個體設定檔的服務角色和角色config AWS CLI。

下列範例示範指定 Amazon AWS CLI 自訂角色config的檔案內容EMR。使用此組態檔案時,指定 --use-default-roles選項時,會使用 建立叢集 MyCustomServiceRoleForEMR 以及 MyCustomServiceRoleForClusterEC2Instances。 根據預設, 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