AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長壽命階段。如需詳細資訊,請參閱 AWS IoT Greengrass V1 維護政策 。在此日期之後, AWS IoT Greengrass V1 不會發佈提供功能、增強功能、錯誤修正或安全修補程式的更新。在 上執行的裝置 AWS IoT Greengrass V1 不會中斷,並會繼續運作和連線至雲端。我們強烈建議您遷移至 AWS IoT Greengrass Version 2,這會新增重要的新功能,並支援其他平台 。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
標記您的 AWS IoT Greengrass 資源
標籤可協助您整理和管理您的 AWS IoT Greengrass 群組。您可以使用標籤來指派中繼資料至群組、大量部署和核心、裝置,以及加入至群組的其他資源。您也可以在 IAM 政策中使用標籤,以定義對 Greengrass 資源的條件式存取。
注意
目前,AWS IoT 帳單群組或成本分配報告不支援 Greengrass 資源標籤。
標籤基本概念
標籤可讓您以不同的方式分類您的 AWS IoT Greengrass 資源,例如依據目的、擁有者和環境。當您有許多相同類型的資源時,您可以依據先前附加的標籤,快速識別資源。每個標籤皆包含由您定義的一個標籤鍵和選用值。我們建議您為每種資源類型設計一組標籤金鑰。使用一致的標籤金鑰組可讓您更輕鬆管理您的 資源。例如,您可以為您的群組定義一組標籤,幫助您追蹤核心裝置的工廠位置。如需詳細資訊,請參閱 AWS 標記策略
AWS IoT 主控台中的標記支援
您可以在 AWS IoT 主控台建立、檢視和管理您 Greengrass Group
資源的標籤。在建立標籤之前,請注意下列標籤限制。如需詳細資訊,請參閱中的標籤命名和使用慣例Amazon Web Services 一般參考。
- 在建立群組時指派標籤
-
您可以在建立群組時將標籤指派給群組。在「標籤」區段下選擇「新增標籤」,以顯示標記輸入欄位。
- 從群組組態頁面檢視和管理標籤
-
您可以選擇檢視設定,從群組組態頁面檢視和管理標記。在群組的「標記」區段中,選擇「管理標記」來新增、編輯或移除群組標記。
AWS IoT Greengrass API 中的標記支援
您可以使用 AWS IoT Greengrass API,為支援標記的 AWS IoT Greengrass 資源建立、列出和管理標籤。在建立標籤之前,請注意下列標籤限制。如需詳細資訊,請參閱中的標籤命名和使用慣例Amazon Web Services 一般參考。
若要在資源建立時新增標籤,請在資源的
tags
屬性定義這些標籤。若要在建立資源後新增標籤,或更新標籤值,請使用
TagResource
動作。若要從資源移除標籤,請使用
UntagResource
動作。若要擷取與一項資源相關聯的標籤,請使用
ListTagsForResource
動作,或取得資源並檢查其tags
屬性。
下表列出您可在 AWS IoT Greengrass API 標記的資源,以及其對應的 Create
和 Get
動作。
資源 | 建立 | 取得 |
---|---|---|
Group |
CreateGroup |
GetGroup |
ConnectorDefinition |
CreateConnectorDefinition |
GetConnectorDefinition |
CoreDefinition |
CreateCoreDefinition |
GetCoreDefinition |
DeviceDefinition |
CreateDeviceDefinition |
GetDeviceDefinition |
FunctionDefinition |
CreateFunctionDefinition |
GetFunctionDefinition |
LoggerDefinition |
CreateLoggerDefinition |
GetLoggerDefinition |
ResourceDefinition |
CreateResourceDefinition |
GetResourceDefinition |
SubscriptionDefinition |
CreateSubscriptionDefinition |
GetSubscriptionDefinition |
BulkDeployment
|
StartBulkDeployment |
GetBulkDeploymentStatus |
使用下列動作列出並管理支援標記之資源的標籤:
-
TagResource
。 向資源添加標籤。也用來改變標籤鍵值對的數值。 -
ListTagsForResource
。 列出資源的標籤。 -
UntagResource
。 從資源中移除標籤。
您可以隨時新增或移除資源的標籤。若要變更標籤金鑰的值,請在資源加入定義相同金鑰和新數值的標籤。新的數值會覆寫舊的數值。您可以將數值設為空白字串,但您無法將數值設為 null。
您刪除資源時,也會刪除與該資源相關聯的標籤。
注意
請勿搞混資源標籤以及您可以指派給 AWS IoT 實物的屬性。雖然 Greengrass Core 是 AWS IoT 實物,本主題中所述的資源標籤是連結到 CoreDefinition
,而非核心實物。
搭配 IAM 政策使用標籤
在 IAM 政策中,您可以使用資源標籤來控制使用者存取和許可。例如,政策可讓使用者僅能建立具有特定標籤的資源。政策也可以限制使用者建立或修改具有特定標籤的資源。您可以在建立資源時進行標記 (稱為建立時套用標籤),如此一來,您就不用再執行自訂標記指令碼。使用標籤啟動新環境時,會自動套用對應的 IAM 許可。
下列條件內容鍵和值可用於政策的 Condition
元素 (又稱為 Condition
區塊)。
greengrass:ResourceTag/
tag-key
:tag-value
-
允許或拒絕資源使用者對具有特定標籤之資源的動作。
aws:RequestTag/
tag-key
:tag-value
-
要求提出 API 請求,以建立或修改可標記的資源上之標籤時,必須使用 (或未使用) 特定的標籤。
aws:TagKeys: [
tag-key
, ...]-
要求提出 API 請求,以建立或修改可標記的資源上之標籤時,必須使用 (或未使用) 特定的一組標籤鍵。
條件內容鍵和值,只能用於在可標記資源上進行的 AWS IoT Greengrass 動作。這些動作將資源視為必要參數。例如,您可以設定對 GetGroupVersion
的條件式存取。您不能設定 AssociateServiceRoleToAccount
的有條件存取,因為請求中沒有參考可標記的資源 (例如群組、核心定義或裝置定義)。
如需詳細資訊,請參閱 IAM 使用者指南中的使用標籤控制存取和 IAM JSON 政策參考。JSON 政策參考包括 IAM 中 JSON 政策的元素、變數和評估邏輯的詳細語法、說明和範例。
範例 IAM 政策
以下範例政策套用標籤式許可,限制試用使用者只能在試用資源上進行動作。
-
第一個陳述式允許 IAM 使用者只對具有 env=beta 標籤的資源採取行動。
-
第二個陳述式可防止 IAM 使用者從資源中移除 env=beta 標籤。這樣可防止使用者移除自己的存取。
注意
如果您使用標籤控制資源存取,您也應該管理許可,讓使用者能從同樣的資源新增或移除標籤。否則,有時使用者可能會透過修改標籤來避開您的限制,並取得資源的存取。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "greengrass:*", "Resource": "*", "Condition": { "StringEquals": { "greengrass:ResourceTag/env": "beta" } } }, { "Effect": "Deny", "Action": "greengrass:UntagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/env": "beta" } } } ] }
若要允許使用者建立資源時套用標籤,您必須提供適當的許可。以下範例政策包含 greengrass:TagResource
和 greengrass:CreateGroup
行動的 "aws:RequestTag/env": "beta"
條件,可讓使用者僅建立標記為 env=beta 的群組。這可有效強制使用者標記新群組。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "greengrass:TagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": "beta" } } }, { "Effect": "Allow", "Action": "greengrass:CreateGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": "beta" } } } ] }
下列指令碼片段說明您可如何將用於標籤鍵的多組標籤值包含在清單中:
"StringEquals" : { "greengrass:ResourceTag/env" : ["dev", "test"] }
另請參閱
-
《Amazon Web Services 一般參考》中的標記您的 AWS 資源。