本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EC2 的 IAM 的角色
應用程式必須使用 AWS 登入資料簽署其 API 請求。因此,若您是應用程式開發人員,對於在 EC2 執行個體上運作的應用程式,您會需要其登入資料的管理策略。例如,您可安全將 AWS 登入資料分配給執行個體,讓在這些執行個體上運作的應用程式能夠使用此登入資料來簽署請求,同時避免其他使用者取得您的登入資料。不過,將登入資料安全地分發給每個執行個體是很困難的,尤其是代表您 AWS 建立的執行個體,例如 Spot 執行個體或 Auto Scaling 群組中的執行個體。當您輪換登入資料時,也必須能夠更新每個執行個體上的 AWS 登入資料。
我們設計的 IAM 角色,讓您的應用程式能夠從執行個體安全提出 API 請求,您無須管理應用程式使用的安全登入資料。您可以委派許可使用 IAM 角色提出 API 請求,而不是建立和分發您的 AWS 登入資料,如下所示:
-
建立 IAM 角色。
-
定義哪些帳戶 AWS 或服務可以擔任該角色。
-
定義應用程式在角色擔任後可使用的 API 動作與資源。
-
啟動執行個體時指定該角色,或將該角色連接至現有執行個體。
-
讓應用程式擷取一組暫時登入資料並加以使用。
例如,若執行於您執行個體上的應用程式需要使用 Amazon S3 內的儲存貯體,您可使用 IAM 角色為其授予許可。您可建立 JSON 格式的政策,藉此指定 IAM 角色的許可。這些政策類似於您為使用者建立的政策。若您變更角色,此變更會傳播至所有執行個體。
注意
Amazon EC2 IAM 角色登入資料不受角色中設定的工作階段持續時間上限限制。如需詳細資訊,請參閱《IAM 使用者指南》中的擔任角色的方法。
建立 IAM 角色時,請與最低權限 IAM 政策建立關聯,以限制對應用程式所需之特定 API 呼叫的存取。對於 Windows 至 Windows 通訊,請使用妥善定義且妥善記載的 Windows 群組和角色,授與 Windows 執行個體之間的應用程式層級存取權。群組和角色可讓客戶定義最低權限應用程式和 NTFS 資料夾層級許可,以限制對應用程式特定需求的存取。
雖然您只能將一個 IAM 角色連接到一個執行個體中,但您可以將相同的角色連接到多個執行個體中。如需建立 IAM 角色的詳細資訊,請參閱IAM 使用者指南中的角色。
您可將資源層級許可套用至 IAM 政策,藉此控制使用者連接、取代或分離執行個體的 IAM 角色的能力。如需詳細資訊,請參閱 Amazon EC2 API 動作支援的資源層級許可及下列範例:範例:使用 IAM 角色。
執行個體描述檔
Amazon EC2 會使用執行個體描述檔做為 IAM 角色的容器。使用 IAM 主控台建立 IAM 角色時,主控台會自動建立執行個體描述檔,並將其命名為與對應角色相同的名稱。若您使用 Amazon EC2 主控台來啟動具備 IAM 角色的執行個體,或使用該主控台將 IAM 角色連接至執行個體,您須根據執行個體描述檔名稱清單來選擇角色。
如果您使用 AWS CLI、 API 或 AWS SDK 來建立角色,則可以將角色和執行個體描述檔建立為不同的動作,名稱可能不同。如果您接著使用 AWS CLI、 API 或 AWS SDK 來啟動具有 IAM 角色的執行個體,或將 IAM 角色連接至執行個體,請指定執行個體設定檔名稱。
執行個體描述檔內僅有一個 IAM 角色。此限制無法提高。
如需詳細資訊,請參閱《IAM 使用者指南》中的使用執行個體設定檔。
許可使用案例
當您第一次為應用程式建立 IAM 角色時,有時可能會授予超出所需的許可。在生產環境中啟動應用程式之前,您可以根據 IAM 角色的存取活動產生 IAM 政策。IAM Access Analyzer 會檢閱您的 AWS CloudTrail 日誌,並產生政策範本,其中包含角色在指定日期範圍中使用的許可。您可以使用範本建立具有精細許可的受管政策,然後將其連接至 IAM 角色。如此一來,您只授予角色與特定使用案例 AWS 的資源互動所需的許可。這有助於您符合授予最低權限的最佳實務。如需更多資訊,請參閱「IAM 使用者指南」中的 IAM Access Analyzer 政策驗證。
Amazon EC2 執行個體的執行個體身分角色
您啟動的每個 Amazon EC2 執行個體都有一個代表其身分的執行個體身分角色。執行個體身分角色是 IAM 角色的一種類型。 AWS 服務和功能整合為使用執行個體身分角色,可用來識別 服務的執行個體。
您可以從 /identity-credentials/ec2/security-credentials/ec2-instance
的執行個體中繼資料服務 (IMDS) 存取執行個體身分角色憑證。登入資料包含 AWS 臨時存取金鑰對和工作階段權杖。它們用於向使用執行個體身分角色 AWS 的服務簽署 AWS Sigv4 請求。無論執行個體上是否已啟用使用執行個體身分角色的服務或功能,憑證都會顯示在執行個體中繼資料中。
執行個體身分角色在執行個體啟動時自動建立,沒有角色信任政策文件,且不受任何身分或資源政策的約束。
支援的服務
下列 AWS 服務使用執行個體身分角色:
-
Amazon EC2 – EC2 執行個體連線使用執行個體身分角色來更新 Linux 執行個體的主機金鑰。
-
Amazon GuardDuty – GuardDuty 執行期監控使用執行個體身分角色,允許執行期代理程式將安全遙測傳送至 GuardDuty VPC 端點。
-
AWS Security Token Service (AWS STS) – 執行個體身分角色登入資料可與 AWS STS
GetCallerIdentity
動作搭配使用。 -
AWS Systems Manager – 使用預設主機管理組態時, AWS Systems Manager 會使用執行個體身分角色提供的身分來註冊 EC2 執行個體。識別執行個體之後,Systems Manager 可將
AWSSystemsManagerDefaultEC2InstanceManagementRole
IAM 角色傳遞給執行個體。
執行個體身分角色無法與其他 AWS 服務或功能搭配使用,因為它們與執行個體身分角色沒有整合。
執行個體身分角色 ARN
執行個體身分角色 ARN 採用下列格式:
arn:
aws-partition
:iam::account-number
:assumed-role/aws:ec2-instance/instance-id
例如:
arn:
aws
:iam::0123456789012
:assumed-role/aws:ec2-instance/i-0123456789example
如需 ARN 的詳細資訊,請參閱「IAM 使用者指南」中的 Amazon Resource Name (ARN)。