IAMAmazon EC2 啟動模板所需的許可 - Amazon Elastic Compute Cloud

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

IAMAmazon EC2 啟動模板所需的許可

您可以使用IAM權限來控制使用者是否可以列出、檢視、建立或刪除啟動範本或啟動範本版本。

重要

您無法使用資源層級權限來限制使用者在建立啟動範本或啟動範本版本時可在啟動範本中指定的資源。因此,請確定只有受信任的管理員獲得建立啟動範本和啟動範本版本的權限。

您必須將使用啟動範本的任何人授與建立和存取啟動範本中指定之資源所需的權限。例如:

  • 若要從共用私有 Amazon Machine 映像 (AMI) 啟動執行個體,使用者必須擁有AMI.

  • 若要從現有快照建立含標籤的EBS磁碟區,使用者必須擁有快照的讀取權限,以及建立和標記磁碟區的權限。

ec2:CreateLaunchTemplate

若要在主控台中建立啟動範本或使用APIs,主參與者必須具有IAM原則中的ec2:CreateLaunchTemplate權限。盡可能使用標籤來協助控制帳戶中啟動範本的存取權。

例如,下列IAM原則陳述式僅在範本使用指定的標籤時,才授與主參與者建立啟動範本的權限 (目的=測試).

{ "Sid": "IAMPolicyForCreatingTaggedLaunchTemplates", "Action": "ec2:CreateLaunchTemplate", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } }

建立啟動範本的主體可能需要一些相關許可,例如:

  • ec2: CreateTags — 要在CreateLaunchTemplate操作期間將標籤添加到啟動模板,CreateLaunchTemplate調用者必須具有IAM策略中的ec2:CreateTags許可。

  • ec2: RunInstances — 若要從他們建立的啟動範本啟動EC2執行個體,主體也必須具有IAM政策中的ec2:RunInstances權限。

針對套用標籤的資源建立動作,使用者必須具有 ec2:CreateTags 許可。下列IAM原則陳述式會使用ec2:CreateAction條件索引鍵,讓使用者只能在的環境中建立標籤CreateLaunchTemplate。使用者無法為現有啟動範本或任何其他資源套用標籤。如需詳細資訊,請參閱准許在建立期間標記 Amazon EC2 資源

{ "Sid": "IAMPolicyForTaggingLaunchTemplatesOnCreation", "Action": "ec2:CreateTags", "Effect": "Allow", "Resource": "arn:aws:ec2:region:account-id:launch-template/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateLaunchTemplate" } } }

建立啟動範本的使用IAM者不會自動擁有使用他們建立之啟動範本的權限。與任何其他主參與者一樣,啟動範本建立者必須透過IAM原則取得權限。如果IAM使用者想要從啟動範本啟動EC2執行個體,他們必須擁有該ec2:RunInstances權限。授與這些權限時,您可以指定使用者只能使用具有特定標籤或特定標籤的啟動範本IDs。您也可以指定呼叫的AMI資源層級權限,控制任何使用啟動範本的使用者在啟動執行個體時都可以參考和使用的資源和其他資源。RunInstances如需範例政策,請參閱 啟動範本

ec2:DescribeLaunchTemplates

若要列出並檢視帳戶中的啟動範本,主參與者必須具有IAM策略中的ec2:DescribeLaunchTemplates權限。因為 Describe 動作不支援資源層級許可,您必須在沒有條件的情況下指定它們,且政策中資源元素的值必須為 "*"

例如,下列IAM政策陳述式授予主參與者列出及檢視帳戶中所有啟動範本的權限。

{ "Sid": "IAMPolicyForDescribingLaunchTemplates", "Action": "ec2:DescribeLaunchTemplates", "Effect": "Allow", "Resource": "*" }

ec2:DescribeLaunchTemplateVersions

列出並檢視啟動範本的主參與者也應具備擷ec2:DescribeLaunchTemplateVersions取組成啟動範本之整個屬性集的權限。

若要列出並檢視帳戶中的啟動範本版本,主參與者必須具有IAM策略中的ec2:DescribeLaunchTemplateVersions權限。因為 Describe 動作不支援資源層級許可,您必須在沒有條件的情況下指定它們,且政策中資源元素的值必須為 "*"

例如,下列IAM原則陳述式授予主參與者列出及檢視帳戶中所有啟動範本版本的權限。

{ "Sid": "IAMPolicyForDescribingLaunchTemplateVersions", "Effect": "Allow", "Action": "ec2:DescribeLaunchTemplateVersions", "Resource": "*" }

ec2:DeleteLaunchTemplate

重要

在授予主體刪除資源的許可時,您應該小心謹慎。刪除啟動範本可能會導致依賴啟動範本的 AWS 資源失敗。

若要刪除啟動範本,主參與者必須具有IAM原則中的ec2:DeleteLaunchTemplate權限。盡可能使用以標籤為基礎的條件索引鍵以限制許可。

例如,下列IAM原則陳述式僅在範本具有指定的標籤時,才授予主參與者刪除啟動範本的權限 (目的=測試).

{ "Sid": "IAMPolicyForDeletingLaunchTemplates", "Action": "ec2:DeleteLaunchTemplate", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } }

或者,您可以使用ARNs來識別套用IAM原則的啟動範本。

啟動範本具有下列項目ARN。

"Resource": "arn:aws:ec2:region:account-id:launch-template/lt-09477bcd97b0d310e"

您可以ARNs透過將它們包含在清單中來指定多個,也可以指定"*"不含Condition元素的Resource值,以允許主參與者刪除帳戶中的任何啟動範本。

控制版本控制許可

對於受信任的管理員,您可以使用類似下列範例的IAM原則,授予建立和刪除啟動範本版本的存取權,以及變更啟動範本的預設版本。

重要

授與主參與者建立啟動範本版本或修改啟動範本的權限時,請務必小心。

  • 當您建立啟動範本版本時,會影響任何允許 Amazon EC2 代表您使用該Latest版本啟動執行個體的 AWS 資源。

  • 修改啟動範本時,您可以變更哪個版本,因此會影響允許 Amazon EC2 以此修改版本代表您啟動執行個體的任何 AWS 資源。Default

您還需要謹慎處理與模板版本互DefaultLatest或啟動模板版本的 AWS 資源的方式,例如EC2艦隊和 Spot Fleet。當Latest或使用不同的啟動範本版本時Default,Amazon EC2 不會重新檢查使用者許可是否在啟動新執行個體以滿足叢集的目標容量時要完成的動作,因為沒有使用者與資源互動。 AWS 透過授與使用者呼叫 CreateLaunchTemplateVersion and 的權限 ModifyLaunchTemplateAPIs,如果使用者將叢集指向包含執行個體設定檔 (IAM角色的容器) 的其他啟動範本版本,則使用者也會實際上獲得該iam:PassRole權限。這表示使用者可能會更新啟動範本,以將IAM角色傳遞給執行個體,即使他們沒有iam:PassRole權限也是如此。在將許可授予可建立和管理啟動範本版本的使用者時保持謹慎,即可妥善管理此風險。

ec2:CreateLaunchTemplateVersion

若要建立啟動範本的新版本,主參與者必須具有IAM原則中啟動範本的ec2:CreateLaunchTemplateVersion權限。

例如,下列IAM原則陳述式僅在版本使用指定的標籤時,才授予主參與者建立啟動範本版本的權限 (環境=生產). 或者,您可以指定一或多個啟動範本ARNs,也可以指定"*"不含Condition元素的Resource值,以允許主參與者在帳戶中建立任何啟動範本的版本。

{ "Sid": "IAMPolicyForCreatingLaunchTemplateVersions", "Action": "ec2:CreateLaunchTemplateVersion", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "production" } } }

ec2:DeleteLaunchTemplateVersion

重要

一如往常,在授予委託人刪除資源的許可時,您應該小心謹慎。刪除啟動範本版本可能會導致依賴啟動範本版本的 AWS 資源失敗。

若要刪除啟動範本版本,主參與者必須具有IAM原則中啟動範本的ec2:DeleteLaunchTemplateVersion權限。

例如,下列IAM原則陳述式僅在版本使用指定的標籤時,才授予主參與者刪除啟動範本版本的權限 (環境=生產). 或者,您可以指定一或多個啟動範本ARNs,也可以指定"*"不含Condition元素的Resource值,以允許主參與者刪除帳戶中任何啟動範本的版本。

{ "Sid": "IAMPolicyForDeletingLaunchTemplateVersions", "Action": "ec2:DeleteLaunchTemplateVersion", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "production" } } }

ec2:ModifyLaunchTemplate

若要變更與啟動範本相關聯的Default版本,主參與者必須具有IAM原則中啟動範本的ec2:ModifyLaunchTemplate權限。

例如,只有在啟動範本使用指定的標籤時,下列IAM原則陳述式才會授予主參與者修改啟動範本的權限 (環境=生產). 或者,您可以指定一或多個啟動範本ARNs,或者指定"*"不含Condition元素的Resource值,以允許主參與者修改帳戶中的任何啟動範本。

{ "Sid": "IAMPolicyForModifyingLaunchTemplates", "Action": "ec2:ModifyLaunchTemplate", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "production" } } }

控制啟動範本上標籤的存取權

當資源為啟動範本時,您可以使用條件索引鍵來限制標記許可。例如,下列IAM原則只允許從指定帳戶和區域的啟動範本中移除具有temporary索引鍵的標籤。

{ "Sid": "IAMPolicyForDeletingTagsOnLaunchTemplates", "Action": "ec2:DeleteTags", "Effect": "Allow", "Resource": "arn:aws:ec2:region:account-id:launch-template/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": ["temporary"] } } }

如需可用於控制可套用至 Amazon EC2 資源之標籤金鑰和值的條件金鑰的詳細資訊,請參閱控制對特定標籤的存取