AWS IoT SiteWise 身分型政策範例 - AWS IoT SiteWise

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

AWS IoT SiteWise 身分型政策範例

根據預設,IAM 使用者和角色不具備建立或修改 AWS IoT SiteWise 資源的許可。他們也無法使用 AWS Management Console、AWS CLI 或 AWS API 執行任務。IAM 管理員必須建立 IAM 政策,授予使用者和角色在指定資源上執行特定 API 操作的所需許可。管理員接著必須將這些政策連接至需要這些許可的 IAM 使用者或群組。

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策,請參閱《IAM 使用者指南》中的在 JSON 標籤上建立政策

政策最佳實務

身分型政策相當強大。他們可以判斷您帳戶中的某個人員是否可以建立、存取或刪除 AWS IoT SiteWise 資源。這些動作可能會讓您的 AWS 帳戶 產生費用。當您建立或編輯身分型政策時,請遵循下列準則及建議事項:

  • 開始使用 AWS 受管政策:若要快速開始使用 AWS IoT SiteWise,請使用 AWS 受管政策來給予員工所需許可。這些政策已在您的帳戶中提供,並由 AWS 維護和更新。如需詳細資訊,請參閱《IAM 使用者指南》中的開始搭配 AWS 受管政策使用許可

  • 授予最低權限:當您建立自訂政策時,請只授予執行任務所需要的許可。以最小一組許可開始,然後依需要授予額外的許可。這比一開始使用太寬鬆的許可,稍後再嘗試將他們限縮更為安全。如需詳細資訊,請參閱《IAM 使用者指南》中的授予最低權限

  • 為敏感操作啟用 MFA:為了增加安全,請要求 IAM 使用者使用多重要素驗證 (MFA) 存取敏感資源或 API 操作。如需詳細資訊,請參閱《IAM 使用者指南》中的在 AWS 中使用多重要素驗證 (MFA)

  • 使用政策條件以增加安全:在切實可行的範圍中,請定義您身分類型政策允許存取資源的條件。例如,您可以撰寫條件,指定請求必須來自一定的允許 IP 地址範圍。您也可以撰寫條件,只在指定的日期或時間範圍內允許請求,或是要求使用 SSL 或 MFA。如需詳細資訊,請參閱「」IAM JSON 政策元素:Condition中的IAM User Guide

使用 AWS IoT SiteWise 主控台

若要存取 AWS IoT SiteWise 主控台,您必須擁有最低的一組許可。這些許可必須允許您列出和檢視您 AWS 帳戶中 AWS IoT SiteWise 資源的詳細資訊。如果您建立比最基本必要許可更嚴格的身分型政策,則對於具有該政策的實體 (IAM 使用者或角色) 而言,主控台就無法如預期運作。

若要確保這些實體仍然可以使用 AWS IoT SiteWise 主控台,請將 AWSIoTSiteWiseConsoleFullAccess 受管政策連接至這些實體,或定義這些實體的對等許可。如需詳細資訊,請參閱 IAM 使用者指南中的新增許可到使用者

對於僅呼叫 AWS CLI 或 AWS API 的使用者,您不需要允許其最基本主控台許可。反之,只需允許存取符合您嘗試執行之 API 操作的動作就可以了。

允許使用者檢視自己的許可

此範例會示範如何建立政策,允許 IAM 使用者檢視連接到他們使用者身分的內嵌及受管政策。此政策包含在主控台上,或是使用 AWS CLI 或 AWS API 透過編寫程式的方式完成此動作的許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

允許使用者在單一階層中將資料擷取至資產

在此範例中,您希望授予AWS從根資產開始,將資料寫入特定資產階層中的所有資產屬性的帳户權限a1b2c3d4-5678-90ab-cdef-22222EXAMPLE。政策會將 iotsitewise:BatchPutAssetPropertyValue 許可授予使用者。此政策會使用 iotsitewise:assetHierarchyPath 條件鍵來限制對階層路徑符合資產或其子代之資產的存取。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutAssetPropertyValuesForHierarchy", "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "arn:aws:iotsitewise:*:*:asset/*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", "/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/*" ] } } } ] }

根據標籤檢視 AWS IoT SiteWise 資產

您可以在身分型政策中使用條件,來根據標籤控制存取 AWS IoT SiteWise 資源。此範例會示範如何建立政策,允許檢視資產。但是,只有在資產標籤 Owner 數值是該使用者的使用者名稱時,才會授予該許可。此政策也會授予在主控台完成此動作的必要許可。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListAllAssets", "Effect": "Allow", "Action": [ "iotsitewise:ListAssets", "iotsitewise:ListAssociatedAssets" ], "Resource": "*" }, { "Sid": "DescribeAssetIfOwner", "Effect": "Allow", "Action": "iotsitewise:DescribeAsset", "Resource": "arn:aws:iotsitewise:*:*:asset/*", "Condition": { "StringEquals": { "aws:ResourceTag/Owner": "${aws:username}" } } } ] }

您可以將此政策連接到您帳戶中的 IAM 使用者。若名為 richard-roe 的使用者嘗試檢視 AWS IoT SiteWise 資產,該資產必須標記 Owner=richard-roeowner=richard-roe。否則他便會被拒絕存取。條件標籤鍵 Owner 符合 Ownerowner,因為條件索引鍵名稱不區分大小寫。如需詳細資訊,請參閱「」IAM JSON 政策元素:Condition中的IAM User Guide