標記您的 AWS IoT Wireless 資源
為了協助您管理和組織裝置、閘道、目的地及設定檔,您可以選擇使用標籤將自己的中繼資料指派給每個資源。本節說明標籤並示範如何建立標籤。AWS IoT Wireless 沒有帳單群組,且與 AWS IoT Core 使用相同的帳單群組。如需詳細資訊,請參閱《AWS IoT Core 文件》中的帳單群組。
標籤基本概念
若您已有數個相同類型的 AWS IoT Wireless 資源,可以使用標籤透過不同方式來分類資源 (例如依用途、擁有者或環境)。這樣做可協助您根據指派給資源的標籤來快速識別資源。
每個標籤皆包含由您定義的一個「索引鍵」與選擇性的「值」。例如,您可以針對要更新裝置韌體的一個 LoRaWAN 裝置群組定義一組標籤。為了更輕鬆地管理您的資源,我們建議您建立一組一致的標籤鍵,以滿足您對每種資源類型的需求。
您可以根據新增或套用的標籤來搜尋與篩選資源。您也可以使用標籤來控制資源的存取,藉由使用 IAM 政策和帳單群組標籤來分類和追蹤成本。
建立和管理標籤
您可以使用 AWS Management Console 中的標籤編輯器、AWS IoT Wireless 或 AWS CLI 來建立和管理標籤
使用主控台
為了方便使用起見,AWS Management Console 中的標籤編輯器提供了集中、統一的方式,讓您建立和管理標籤。如需詳細資訊,請參閱使用 AWS Management Console 中的使用標籤編輯器。
使用 API 或 CLI
您也可以使用 API 或 CLI,並在建立無線裝置、閘道、設定檔和目的地時,使用下列命令中的 Tags
欄位將標籤與其產生關聯:
更新資源的標籤或列出標籤
您可以使用下列命令新增、修改或刪除支援標記功能的現有資源標籤:
您可以編輯標籤金鑰和值,並且可以隨時從資源移除標籤。您可以將標籤的值設為空白字串,但您無法將標籤的值設為 Null。若您將與現有標籤具有相同鍵的標籤新增到該資源,則新值會覆寫舊值。如果您刪除資源,也會刪除與該資源相關聯的任何標籤。
標籤的限制與上限
以下基本限制適用於標籤:
-
每個資源的標籤數上限:50。
-
金鑰長度上限:127 個 UTF-8 Unicode 字元。
-
值長度上限:255 個 UTF-8 Unicode 字元。
-
標籤鍵與值皆區分大小寫。
-
請勿於標籤名稱或值中使用
aws:
字首。保留以供日後 AWS 使用。您不可編輯或刪除具此字首的標籤名稱或值。具此字首的標籤,不算在受資源限制的標籤計數內。 -
如果您的標記結構描述是跨多項服務和資源使用,請記得其他服務可能會有字元使用限制。允許使用的字元包括可用 UTF-8 表示的英文字母、空格和數字,以及以下特殊字元:+ - = . _ : / @。
搭配 IAM 政策使用標籤
若要指定使用者可建立、修改或使用的資源,您可以在用於 AWS IoT Wireless API 動作的 IAM 政策中,套用以標籤為基礎的資源層級許可。若要根據資源的標籤控制使用者存取 (許可),可使用 Condition
元素 (也稱為 Condition
區塊),以及 IAM 政策中的以下條件內容金鑰和值。
-
使用
aws:ResourceTag/
以允許或拒絕資源上具有特定標籤的使用者動作。tag-key
:tag-value
-
使用
aws:RequestTag/
以在提出 API 請求時,要求使用 (或不使用) 特定標籤,以建立或修改允許標籤的資源。tag-key
:tag-value
-
使用
aws:TagKeys: [
以在提出 API 請求時,要求使用 (或不使用) 特定標籤金鑰集,以建立或修改允許標籤的資源。tag-key
, ...]
注意
IAM 政策中的條件內容金鑰和值,只會套用到資源識別符可標記為必要參數的那些 AWS IoT 動作。例如,根據條件內容金鑰和值,不允許或拒絕使用 DescribeEndpoint,因為在此請求中所參照的項目沒有可標記資源。
如需使用標籤的詳細資訊,請參閱《AWS Identity and Access Management 使用者指南》中的使用標籤控制。該指南的 IAM JSON 政策參考章節有詳細的語法、說明,還有元素、變數範例,以及在 IAM 中的 JSON 政策評估邏輯。
以下範例政策會套用兩個以標籤為基礎的限制。受到此政策限制的 IAM 使用者:
-
無法提供資源「env=prod」標籤 (在範例中,請參閱此行
"aws:RequestTag/env" : "prod"
)。 -
無法修改或存取具有現有標籤 "env = prod" 的資源 (在範例中,請參閱此行
"aws:ResourceTag/env" : "prod"
)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "iot:CreateMulticastGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": "prod" } } }, { "Effect": "Deny", "Action": [ "iot:CreateMulticastGroup", "iot:UpdateMulticastGroup", "iot:GetMulticastGroup", "iot:ListMulticastGroups" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/env": "prod" } } }, { "Effect": "Allow", "Action": [ "iot:CreateMulticastGroup", "iot:UpdateMulticastGroup", "iot:GetMulticastGroup", "iot:ListMulticastGroups" ], "Resource": "*" } ] }
您也可以透過將其包含在清單中,為特定標籤金鑰指定多個標籤值,如下所示:
"StringEquals" : { "aws:ResourceTag/env" : ["dev", "test"] }
注意
如果您允許或拒絕使用者根據標籤存取資源,請務必考慮明確拒絕使用者將這些標籤新增至相同資源或從中移除的能力。否則,使用者可能透過修改標籤來避開您的限制,並取得資源的存取。