本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
標記您的 AWS IoT Events 資源
為了幫助您管理和組織檢測器模型和輸入,您可以選擇性地以標籤的形式將自己的元數據分配給每個這些資源。本節說明標籤並示範如何建立它們。
標籤基本概念
標籤可讓您以不同的方式對 AWS IoT Events 資源進行分類,例如,依目的、擁有者或環境。這在您擁有許多相同類型的資源時很有用。您可以根據您指派給資源的標籤快速識別特定資源。
每個標籤皆包含由您定義的一個「索引鍵」與選擇性的「值」。例如,您可以為輸入定義一組標籤,以協助您追蹤依類型傳送這些輸入的裝置。我們建議您為每種資源類型建立符合您需求的一組標籤金鑰。使用一致的標籤金鑰組可讓您更輕鬆管理您的 資源。
您可以根據新增或套用的標籤來搜尋和篩選資源、使用標籤來分類和追蹤成本,以及使用標籤來控制對資源的存取,如《AWS IoT 開發人員指南》中所述,將標籤與IAM原則搭配使用。
為了方便使用,中的標籤編輯器 AWS Management Console 提供了一種集中、統一的方式來建立和管理標籤。若要取得更多資訊,請參閱〈標籤 AWS 資源和標籤編輯器使用指南〉中的〈標籤編輯器入門〉。
您也可以使用 AWS CLI 和來處理標籤 AWS IoT Events API。您可以使用下列指令中的"Tags"
欄位,在建立偵測器模型和輸入時,將標籤與檢測器模型和輸入產生關聯:
您可以使用下列命令新增、修改或刪除支援標記功能的現有資源標籤:
您可以編輯標籤金鑰和值,並且可以隨時從資源移除標籤。您可以將標籤的值設為空白字串,但您無法將標籤的值設為 Null。若您將與現有標籤具有相同鍵的標籤新增到該資源,則新值會覆寫舊值。如果您刪除資源,也會刪除與該資源相關聯的任何標籤。
如需詳細資訊,請參閱標記 AWS 資源的最佳做法
標籤的限制與上限
以下基本限制適用於標籤:
-
每一資源最多標籤數 – 50
-
最大金鑰長度 — UTF -8 中的 127 個萬國碼字元
-
最大值長度 — 255 個萬國碼字元 UTF -8
-
標籤鍵與值皆區分大小寫。
-
請勿在標籤名稱或值中使用
"aws:"
前置詞,因為它已保留供 AWS 使用。您不可編輯或刪除具此字首的標籤名稱或值。具此字首的標籤,不算在受資源限制的標籤計數內。 -
如果您的標記結構描述是跨多項服務和資源使用,請記得其他服務可能會有字元使用限制。通常,允許的字符是:字母,空格和數字在 UTF -8 中表示,以及以下特殊字符:+-=。_:/@。
搭配 IAM 政策使用標籤
您可以在用於動作的IAM策略中套用以標籤為基礎的資源層級權限。 AWS IoT Events API這可讓您更有效地控制使用者可以建立、修改或使用哪些資源。
您可以在IAM原則中搭配下列條件內容索引鍵和值使用Condition
元素 (也稱為Condition
區塊),以根據資源的標籤來控制使用者存取 (權限):
-
使用
aws:ResourceTag/
以允許或拒絕資源上具有特定標籤的使用者動作。<tag-key>
:<tag-value>
-
用於在發出建立或修改允許標籤的資源的請求時,要API求使
aws:RequestTag/
用 (或不使用) 特定標籤。<tag-key>
:<tag-value>
-
用
aws:TagKeys: [
於在發出建立或修改允許標籤的資源的請求時,要API求使用 (或不使用) 特定的標籤鍵集。<tag-key>
, ...]
注意
IAM策略中的條件內容索引鍵和值僅適用於那些 AWS IoT Events 動作,其中能夠標記之資源的識別碼為必要參數。
使用《使用指南》中的AWS Identity and Access Management 標籤控制存取權限有關使用標籤的其他資訊。該指南的IAMJSON策略參考一節包含中策略的元素、變數和評估邏輯的詳細語法、說明和範例IAM。JSON
以下範例政策會套用兩個以標籤為基礎的限制。受此政策限制的使用者:
-
無法給予資源 "env = prod" 標籤 (在範例中,請參閱此行
"aws:RequestTag/env" : "prod"
-
無法修改或存取包含現有標籤 "env = prod" 的資源 (在範例中,請參閱此行
"aws:ResourceTag/env" : "prod"
)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "iotevents:CreateDetectorModel", "iotevents:CreateAlarmModel", "iotevents:CreateInput", "iotevents:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": "prod" } } }, { "Effect": "Deny", "Action": [ "iotevents:DescribeDetectorModel", "iotevents:DescribeAlarmModel", "iotevents:UpdateDetectorModel", "iotevents:UpdateAlarmModel", "iotevents:DeleteDetectorModel", "iotevents:DeleteAlarmModel", "iotevents:ListDetectorModelVersions", "iotevents:ListAlarmModelVersions", "iotevents:UpdateInput", "iotevents:DescribeInput", "iotevents:DeleteInput", "iotevents:ListTagsForResource", "iotevents:TagResource", "iotevents:UntagResource", "iotevents:UpdateInputRouting" ], "Resource": "*", "Condition": { "StringLike": { "aws:ResourceTag/env": "prod" } } }, { "Effect": "Allow", "Action": [ "iotevents:*" ], "Resource": "*" } ] }
您也可以將多個標籤值封閉在清單中,以便為指定的標籤鍵指定多個標籤值,如下所示。
"StringEquals" : { "aws:ResourceTag/env" : ["dev", "test"] }
注意
如果您允許或拒絕使用者根據標籤存取資源,請務必考慮明確拒絕使用者將這些標籤新增至相同資源或從中移除的能力。否則,使用者可能透過修改標籤來避開您的限制,並取得資源的存取。