

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

# 在 Amazon EC2 執行個體上執行的應用程式的 IAM 角色
<a name="us-iam-role"></a>

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

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

**注意**  
作為最佳實務，我們強烈建議您建立 角色，使其具有 AWS 服務 應用程式所需的其他 的最低許可。

**Contents**
+ [先決條件](#us-iam-role-prereq)
+ [建立啟動範本](#us-iam-role-create-lt)
+ [另請參閱](#iam-role-see-also)

## 先決條件
<a name="us-iam-role-prereq"></a>

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

如果您使用 IAM 主控台而非 AWS CLI 或其中一個 AWS SDKs，主控台會自動建立執行個體描述檔，並為其提供與其對應之角色相同的名稱。<a name="create-iam-role-console"></a>

**建立 IAM 角色 (主控台)**

1. 前往網址 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 選擇建**立角色**。

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

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

1. 可以的話，請選取用於許可政策的政策，或者選擇 **Create policy** (建立政策) 以開啟新的瀏覽器標籤，並從頭建立新的政策。如需詳細資訊，請參閱《IAM 使用者指南》**中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-start)。在您建立政策後，關閉該標籤並返回您的原始標籤。選取您要服務具有之許可政策旁的核取方塊。

1. (選用) 設定許可界限。這是進階功能，可用於服務角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 實體許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

1. 選擇**下一步**。

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

1. 檢閱角色，然後選擇 **Create role** (建立角色)。

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

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/qateam-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "ec2.amazonaws.com",
                        "ec2.amazonaws.com.rproxy.govskope.ca.cn"
                    ]
                }
            }
        }
    ]
}
```

------

**重要**  
如需有關 Amazon EC2 Auto Scaling 如何驗證使用啟動範本之 Auto Scaling 群組的 `iam:PassRole` 動作許可的詳細資訊，請參閱 [`ec2:RunInstances` 和 `iam:PassRole` 的許可驗證](ec2-auto-scaling-launch-template-permissions.md#runinstances-permissions-validation)。

## 建立啟動範本
<a name="us-iam-role-create-lt"></a>

當您使用 建立啟動範本時 AWS 管理主控台，請在**進階詳細資訊**區段中，從 **IAM 執行個體設定檔**中選取角色。如需詳細資訊，請參閱[使用進階設定建立啟動範本](advanced-settings-for-your-launch-template.md)。

當您從 使用 [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) 命令建立啟動範本時 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"}}'
```

## 另請參閱
<a name="iam-role-see-also"></a>

如需協助您開始學習和使用 Amazon EC2 IAM 角色的詳細資訊，請參閱：
+ 《[Amazon EC2 使用者指南》中的 Amazon EC2 的 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) *Amazon EC2 *
+ 《IAM 使用者指南》**中的[使用執行個體設定檔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)以及[使用 IAM 角色向在 Amazon EC2 執行個體上執行的應用程式授予許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)