

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

# 標記您的 AWS IoT 資源
<a name="tagging-iot"></a>

為了協助您管理和組織物件群組、物件類型、主題規則、任務、排程稽核及安全性描述檔，您可以選擇性地以標籤形式將您自己的中繼資料指派給其中每個資源。本節說明標籤並示範如何建立它們。

為了協助您管理與物件相關的成本，您可以建立包含物件的[帳單群組](tagging-iot-billing-groups.md)。您可以將包括中繼資料的標籤指派到每個帳單群組。本節也會討論可用來建立和管理的帳單群組和命令。

## 標籤基本概念
<a name="tagging-iot-basics"></a>

您可以使用標籤，以不同的方式 （例如，依用途、擁有者或環境） 分類 AWS IoT 資源。當您有許多相同類型的資源時，這會很有用，因為您可以依據先前指派的標籤快速識別資源。每個標籤皆包含由您定義的一個「索引鍵」與選擇性的「值」。例如，您可以為您的物件類型定義一組標籤，協助您以類型追蹤裝置。我們建議您為每種資源類型建立符合您需求的一組標籤金鑰。使用一致的標籤金鑰組可讓您更輕鬆管理您的 資源。

您可以根據新增或套用的標籤來搜尋與篩選資源。您也可以使用帳單群組標籤來分類和追蹤您的成本。您也可以使用標籤來控制對您資源的存取，如 [搭配 IAM 政策使用標籤](tagging-iot-iam.md) 所述。

為了方便使用， AWS 管理主控台中的標籤編輯器提供集中、統一的方式來建立和管理標籤。如需詳細資訊，請參閱[使用標籤編輯器](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html)[使用 AWS 管理主控台](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html)。

您也可以使用 AWS CLI 和 AWS IoT API 處理標籤。當您使用下列命令在 `Tags` 欄位中建立標籤時，您可將標籤與物件群組、物件類型、主題規則、任務、安全性設定檔、政策、帳單群組、物件相關套件和版本建立關聯：
+ [CreateBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateBillingGroup)
+ [CreateDestination](https://docs.aws.amazon.com//iot-wireless/latest/apireference/API_CreateDestination.html)
+ [CreateDeviceProfile](https://docs.aws.amazon.com//iot-wireless/latest/apireference/API_CreateDeviceProfile.html)
+ [CreateDynamicThingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateDynamicThingGroup)
+ [CreateJob](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateJob)
+ [CreateOTAUpdate](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateOTAUpdate)
+ [CreatePolicy](https://docs.aws.amazon.com//iot/latest/apireference/API_CreatePolicy.html)
+ [CreateScheduledAudit](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateScheduledAudit)
+ [CreateSecurityProfile](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateSecurityProfile)
+ [CreateServiceProfile](https://docs.aws.amazon.com//iot-wireless/latest/apireference/API_CreateServiceProfile.html)
+ [CreateStream](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateStream)
+ [CreateThingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateThingGroup)
+ [CreateThingType](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateThingType)
+ [CreateTopicRule](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateTopicRule)
+ [CreateWirelessGateway](https://docs.aws.amazon.com//iot-wireless/latest/apireference/API_CreateWirelessGateway.html)
+ [CreateWirelessDevice](https://docs.aws.amazon.com//iot-wireless/latest/apireference/API_CreateWirelessDevice.html)

您可以使用下列命令新增、修改或刪除支援標記功能的現有資源標籤：
+ [TagResource](https://docs.aws.amazon.com//iot/latest/apireference/API_TagResource)
+ [ListTagsForResource](https://docs.aws.amazon.com//iot/latest/apireference/API_ListTagsForResource)
+ [UntagResource](https://docs.aws.amazon.com//iot/latest/apireference/API_UntagResource)

您可以編輯標籤索引鍵和值，也可以隨時從資源中移除標籤。您可以將標籤的值設為空白字串，但您無法將標籤的值設為 Null。如果您新增的標籤具有與該資源上現有標籤相同的索引鍵，則新值會覆寫舊值。如果您刪除資源，也會刪除與該資源相關聯的任何標籤。

### 標籤的限制與上限
<a name="tagging-iot-restrict"></a>

以下基本限制適用於 標籤：
+ 每個資源的標籤數上限：50
+ 金鑰長度上限：127 個 UTF-8 Unicode 字元
+ 值長度上限：255 個 UTF-8 Unicode 字元
+ 標籤鍵與值皆區分大小寫。
+ 請勿於標籤名稱或值中使用 `aws:` 字首。它保留供 AWS 使用。您不可編輯或刪除具此字首的標籤名稱或值。具此字首的標籤，不算在受資源限制的標籤計數內。
+ 如果您的標記結構描述是跨多項服務和資源使用，請記得其他服務可能會有字元使用限制。允許使用的字元包括可用 UTF-8 表示的英文字母、空格和數字，以及以下特殊字元：\$1 - = . \$1 : / @。

# 搭配 IAM 政策使用標籤
<a name="tagging-iot-iam"></a>

您可以在用於 AWS IoT API 動作的 IAM 政策中，套用以標籤為基礎的資源層級許可。這可讓您更有效地控制使用者可以建立、修改或使用哪些資源。您可以使用 `Condition` 元素 (也稱為 `Condition` 區塊)，以及 IAM 政策中的以下條件內容金鑰和值，來根據資源標籤控制使用者存取 (許可)：
+ 使用 `aws:ResourceTag/tag-key: tag-value` 以允許或拒絕資源上具有特定標籤的使用者動作。
+ 使用 `aws:RequestTag/tag-key: tag-value` 以在提出 API 請求時，要求使用 (或不使用) 特定標籤，以建立或修改允許標籤的資源。
+ 使用 `aws:TagKeys: [tag-key, ...]` 以在提出 API 請求時，要求使用 (或不使用) 特定標籤金鑰集，以建立或修改允許標籤的資源。

**注意**  
IAM 政策中的條件內容索引鍵和值僅適用於資源識別符為必要參數的那些 AWS IoT 動作。例如，根據條件內容金鑰和值，不允許或拒絕使用 [DescribeEndpoint](https://docs.aws.amazon.com//iot/latest/apireference/API_DescribeEndpoint)，因為在此請求中所參照的項目沒有可標記資源 (物件群組、物件類型、主題規則、任務或安全性描述檔)。如需可標記 AWS IoT 的資源及其支援的條件索引鍵的詳細資訊，請參閱 [動作、資源和條件索引鍵 AWS IoT](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html)。

如需使用標籤的詳細資訊，請參閱《AWS Identity and Access Management 使用者指南》**中的[使用標籤控制](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)。該指南的 [IAM JSON 政策參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)章節有詳細的語法、說明，還有元素、變數範例，以及在 IAM 中的 JSON 政策評估邏輯。

以下範例政策會針對 `ThingGroup` 動作套用兩個以標籤為基礎的限制。受到此政策限制的 IAM 使用者：
+ 無法建立包含 "env=prod" 標籤的物件群組 (在範例中，請參閱行 `"aws:RequestTag/env" : "prod"`)。
+ 無法修改或存取具有現有標籤 "env = prod" 的物件群組 (在範例中，請參閱此行 `"aws:ResourceTag/env" : "prod"`)。

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "iot:CreateThingGroup",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/env": "prod"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "iot:CreateThingGroup",
        "iot:DeleteThingGroup",
        "iot:DescribeThingGroup",
        "iot:UpdateThingGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/env": "prod"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:CreateThingGroup",
        "iot:DeleteThingGroup",
        "iot:DescribeThingGroup",
        "iot:UpdateThingGroup"
      ],
      "Resource": "*"
    }
  ]
}
```

您也可以透過將其包含在清單中，為特定標籤金鑰指定多個標籤值，如下所示：

```
            "StringEquals" : {
              "aws:ResourceTag/env" : ["dev", "test"]
            }
```

**注意**  
如果您允許或拒絕使用者根據標籤存取資源，請務必考慮明確拒絕使用者將這些標籤新增至相同資源或從中移除的能力。否則，使用者可能透過修改標籤來避開您的限制，並取得資源的存取。

# 帳單群組
<a name="tagging-iot-billing-groups"></a>

AWS IoT 不允許您將標籤直接套用至個別物件，但可讓您將物件放置在帳單群組中，並將標籤套用至這些物件。對於 AWS IoT，根據標籤配置的成本和用量資料僅限於帳單群組。

AWS IoT Core for LoRaWAN 資源，例如無線裝置和閘道，無法新增至帳單群組。不過，它們可以與物件相關聯，這些 AWS IoT 物件可以新增到帳單群組。

下列命令可供使用：
+ [AddThingToBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_AddThingToBillingGroup) 可將物件新增至帳單群組。
+ [CreateBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateBillingGroup) 會建立帳單群組。
+ [DeleteBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_DeleteBillingGroup) 會刪除帳單群組。
+ [DescribeBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_DescribeBillingGroup) 會傳回關於帳單群組的資訊。
+ [ListBillingGroups](https://docs.aws.amazon.com//iot/latest/apireference/API_ListBillingGroups) 會列出您建立的帳單群組。
+ [ListThingsInBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_ListThingsInBillingGroup) 會列出您已新增至特定帳單群組的物件。
+ [RemoveThingFromBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_RemoveThingFromBillingGroup) 會將特定物件從帳單群組中移除。
+ [UpdateBillingGroup](https://docs.aws.amazon.com//iot/latest/apireference/API_UpdateBillingGroup) 會更新關於帳單群組的資訊。
+ [CreateThing](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateThing) 可讓您在建立物件時，為其指定帳單群組。
+ [DescribeThing](https://docs.aws.amazon.com//iot/latest/apireference/API_DescribeThing) 會傳回物件的描述，包括該物件所屬的帳單群組 (若有的話)。

 AWS IoT 無線 API 提供這些動作，將無線裝置和閘道與 AWS IoT 物件建立關聯。
+ [AssociateWirelessDeviceWithThing](https://docs.aws.amazon.com//iot-wireless/latest/apireference/API_AssociateWirelessDeviceWithThing.html)
+ [AssociateWirelessGatewayWithThing](https://docs.aws.amazon.com//iot-wireless/latest/apireference/API_AssociateWirelessGatewayWithThing.html)

## 檢視成本分配和用量資料
<a name="tagging-iot-billing-groups-costs"></a>

您可以使用帳單群組標籤來分類和追蹤您的成本。當您將標籤套用至帳單群組 （因此套用至包含的物件） 時， 會將成本分配報告 AWS 產生為逗號分隔值 (CSV) 檔案，其中包含標籤彙總的用量和成本。您可以套用代表業務類別 (例如成本中心、應用程式名稱或擁有者) 的標籤，來整理多個服務中的成本。如需使用標籤進行成本分配的詳細資訊，請參閱[《AWS 帳單和成本管理使用者指南》](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/)中的[使用成本分配標籤](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

**注意**  
若要準確地將用量和成本資料與您已置於帳單群組的物件建立關聯，每個裝置或應用程式皆必須：  
註冊為 中的物件 AWS IoT。如需詳細資訊，請參閱[使用 管理裝置 AWS IoT](iot-thing-management.md)。
僅使用物件名稱做為用戶端 ID，透過 MQTT 連線至 AWS IoT 訊息中介裝置。如需詳細資訊，請參閱[裝置通訊協定](protocols.md)。如果您的用戶端 ID 與物件名稱不相符，您可以啟用獨佔物件附件來建立關聯。如需詳細資訊，請參閱[將 AWS IoT 物件與 MQTT 用戶端連線建立關聯](exclusive-thing.md)。
使用與物件關聯的用戶端憑證驗證。

帳單群組可使用以下定價維度 (根據與帳單群組關聯的物件活動)：
+ 連線能力 (根據做為用戶端 ID 以用於連線的物件名稱)。
+ 簡訊 (根據物件傳入和傳出的訊息；僅限 MQTT)。
+ 影子操作 (根據其訊息觸發影子更新的物件)。
+ 觸發的規則 (根據其傳入訊息已觸發規則的物件；不適用於 MQTT 生命週期事件所觸發的那些規則)。
+ 物件索引更新 (根據新增到索引的物件)。
+ 遠端動作 (根據更新的物件)。
+ [AWS IoT Device Defender 偵測](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-detect.html)報告 （根據報告其活動的物件）。

根據標籤的成本和用量資料 (以及帳單群組的報告) 不會反映以下活動：
+ 裝置登錄操作 (包括物件、物件群組和物件類型的更新)。如需詳細資訊，請參閱 [使用 管理裝置 AWS IoT](iot-thing-management.md)。
+ 物件群組索引更新 (在新增物件群組時)。
+ 索引搜尋查詢。
+ [裝置佈建](iot-provision.md).
+ [AWS IoT Device Defender 稽核](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-audit.html)報告。