在 Amazon EC2 執行個體上執行的應用程式的 IAM 角色 - Amazon EC2 Auto Scaling

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

在 Amazon EC2 執行個體上執行的應用程式的 IAM 角色

在 Amazon EC2 執行個體上執行的應用程式需要憑證才能存取其他 AWS 服務。若要以安全方式提供這些憑證,請使用 IAM 角色。該角色提供應用程式在存取其他 AWS 資源時可以使用的臨時許可。此角色的許可決定允許應用程式執行什麼。

對於 Auto Scaling 群組中的執行個體,您必須建立啟動範本或啟動組態,並選擇要與執行個體關聯的執行個體設定檔。執行個體設定檔是 IAM 角色的容器,而此角色允許 Amazon EC2 在執行個體啟動時將 IAM 角色傳遞至該執行個體。首先,建立具有存取 AWS 資源所需的所有權限的 IAM 角色。然後,建立執行個體設定檔並指派角色給此描述檔。

注意

最佳作法是,我們強烈建議您建立角色,使其具有應用程式所需之其他角色 AWS 服務 的最低權限。

必要條件

建立在 Amazon EC2 上執行的應用程式可以擔任的 IAM 角色。選擇適當的許可,以便後續獲得角色的應用程式可以進行其所需的特定 API 呼叫。

如果您使用 IAM 主控台而不是 AWS CLI 或其中一個 AWS SDK,則主控台會自動建立執行個體設定檔,並為其提供與其對應角色相同的名稱。

建立 IAM 角色 (主控台)
  1. 前往網址 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在左側導覽窗格中,選擇 Roles (角色)。

  3. 選擇建立角色

  4. 對於 Select trusted entity (選取信任的實體) 區段,選擇 AWS service (AWS 服務)。

  5. 對於您的使用案例,選擇 EC2,然後選擇 Next (下一步)。

  6. 可以的話,請選取用於許可政策的政策,或者選擇 Create policy (建立政策) 以開啟新的瀏覽器標籤,並從頭建立新的政策。如需詳細資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策。在您建立政策後,關閉該標籤並返回您的原始標籤。選取您要服務具有之許可政策旁的核取方塊。

  7. (選用) 設定許可界限。這是進階功能,可用於服務角色。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 實體許可界限

  8. 選擇下一步

  9. Name, review, and create (命名、檢閱和建立) 頁面的 Role name (角色名稱),輸入角色名稱,以協助您識別此角色的用途。此名稱在您的 AWS 帳戶中必須是唯一的。由於其他 AWS 資源可能會參照該角色,因此您無法在建立角色之後編輯該角色的名稱。

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

IAM 許可

使用 IAM 身分型政策來控制對新 IAM 角色的存取權。如果使用者是使用指定執行個體設定檔的啟動範本來建立或更新 Auto Scaling 群組的 IAM 身分 (使用者或角色),則需要 iam:PassRole 許可。

下列政策範例會授與僅傳遞名稱開頭為 qateam- 之 IAM 角色的許可。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/qateam-*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.rproxy.goskope.com.cn" ] } } } ] }
重要

如需有關 Amazon EC2 Auto Scaling 如何驗證使用啟動範本之 Auto Scaling 群組的 iam:PassRole 動作許可的詳細資訊,請參閱 ec2:RunInstances 和 iam:PassRole 的許可驗證

建立啟動範本

使用建立啟動範本時 AWS Management Console,請在 [進階詳細資料] 區段中,從 IAM 執行個體設定檔中選取角色。如需詳細資訊,請參閱 使用進階設定建立啟動範本

使用指create-launch-template令建立啟動範本時 AWS CLI,請指定 IAM 角色的執行個體設定檔名稱,如下列範例所示。

aws ec2 create-launch-template --launch-template-name my-lt-with-instance-profile --version-description version1 \ --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro","IamInstanceProfile":{"Name":"my-instance-profile"}}'

另請參閱

如需協助您開始學習和使用 Amazon EC2 IAM 角色的詳細資訊,請參閱: