本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
准許在建立期間標記 Amazon EC2 資源
有些資源建立 Amazon EC2API動作可讓您在建立資源時指定標籤。您可以使用資源標籤實作屬性型控制項 (ABAC)。如需詳細資訊,請參閱 標記您的 資源 和 使用以屬性為基礎的存取控制存取。
使用者若要在建立時標記資源,他們必須具備建立資源動作 (如 ec2:RunInstances
或 ec2:CreateVolume
) 的使用許可。若標籤於資源建立動作指定,Amazon 會針對 ec2:CreateTags
動作執行其他授權,以確認使用者具備建立標籤的許可。因此,使用者必須同時具備使用 ec2:CreateTags
動作的明確許可。
在ec2:CreateTags
動作IAM的政策定義中,使用 Condition
元素搭配ec2:CreateAction
條件索引鍵,為建立資源的動作提供標記許可。
下列範例示範一個政策,其允許使用者啟動執行個體,並在啟動期間將標籤套用至執行個體與磁碟區。使用者沒有標記現有資源的權限 (他們不能直接呼叫 ec2:CreateTags
動作)。
{ "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:region:account:*/*", "Condition": { "StringEquals": { "ec2:CreateAction" : "RunInstances" } } } ] }
同樣的,下列政策允許使用者建立磁碟區,並在磁碟區建立期間將標籤套用至該磁碟區。使用者沒有標記現有資源的權限 (他們不能直接呼叫 ec2:CreateTags
動作)。
{ "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateVolume" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:region:account:*/*", "Condition": { "StringEquals": { "ec2:CreateAction" : "CreateVolume" } } } ] }
只有在資源建立動作中套用了標籤時,才評估 ec2:CreateTags
動作。因此,在沒有標記條件的情況下,若請求中未指定標籤,則具備資源建立許可的使用者不需要使用 ec2:CreateTags
動作的許可。然而,若該使用者試圖建立具有標籤的資源卻未具備使用 ec2:CreateTags
動作的許可,則該請求會失敗。
如果在啟動範本中提供標籤,也會評估 ec2:CreateTags
動作。如需政策範例,請參閱 啟動範本中的標籤。
控制對特定標籤的存取
您可以使用IAM政策Condition
元素中的其他條件來控制可套用至資源的標籤金鑰和值。
下列條件金鑰機可與前一節中的範例搭配使用:
-
aws:RequestTag
:表示請求中必須存在特定標籤金鑰或標籤金鑰與值。請求內亦可指定其他標籤。-
搭配
StringEquals
條件運算子使用,以強制結合特定標籤金鑰與值,例如強制執行標籤cost-center
=cc123
:"StringEquals": { "aws:RequestTag/cost-center": "cc123" }
-
搭配
StringLike
條件運算子使用,以在請求中強制執行特定標籤金鑰,例如強制執行標籤金鑰purpose
:"StringLike": { "aws:RequestTag/purpose": "*" }
-
-
aws:TagKeys
:強制執行請求中使用的標籤金鑰。-
搭配
ForAllValues
修飾詞使用,若請求內提供特定標籤金鑰,將強制加以執行 (若請求內指定標籤,則僅允許特定標籤金鑰,不允許其他標籤)。例如,允許標籤金鑰environment
或cost-center
:"ForAllValues:StringEquals": { "aws:TagKeys": ["environment","cost-center"] }
-
搭配
ForAnyValue
修飾詞使用,以強制要求請求內至少具有一個指定的標籤金鑰。例如,請求內必須出現至少下列標籤金鑰environment
或webserver
之一:"ForAnyValue:StringEquals": { "aws:TagKeys": ["environment","webserver"] }
-
這些條件鍵可套用於支援標記的資源建立動作,以及 ec2:CreateTags
和 ec2:DeleteTags
動作。若要了解 Amazon EC2API動作是否支援標記,請參閱 Amazon 的動作、資源和條件金鑰EC2。
若要強制使用者在建立資源時指定標籤,您必須在資源建立動作內,搭配 aws:RequestTag
修飾詞使用 aws:TagKeys
條件金鑰或 ForAnyValue
條件金鑰。若使用者未針對資源建立動作指定標籤,則不會評估 ec2:CreateTags
動作。
以條件而言,條件金鑰不區分大小寫,而條件值會區分大小寫。因此,欲強制標籤鍵區分大小寫,請使用 aws:TagKeys
條件索引鍵,其中標籤鍵指定為條件值。
如需IAM政策範例,請參閱 控制 Amazon 訪問的示例政策 EC2 API。如需多值條件的詳細資訊,請參閱 IAM 使用者指南 中的建立可測試多個金鑰值的條件。