本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Transfer Family 標籤型政策範例
以下是如何根據標籤控制 AWS Transfer Family 資源存取的範例。
使用標籤來控制對 AWS Transfer Family 資源的存取
IAM 政策中的條件是您用來指定 AWS Transfer Family 資源許可的語法的一部分。您可以根據這些 AWS Transfer Family 資源上的標籤來控制對資源 (例如使用者、伺服器、角色和其他實體) 的存取。標籤均為金鑰值對。如需標記資源的詳細資訊,請參閱《》中的標記 AWS 資源AWS 一般參考。
在 中 AWS Transfer Family,資源可以有標籤,而某些動作可以包含標籤。建立 IAM 政策時,可使用標籤條件索引鍵來控制以下項目:
-
哪些使用者可以根據 AWS Transfer Family 資源擁有的標籤,對資源執行動作。
-
可在動作請求中傳遞的標記。
-
請求中是否可使用特定的標籤鍵。
透過使用標籤型存取控制,您可以套用比 API 層級更精細的控制。您也可以套用比使用資源型存取控制更多的動態控制。您可以建立 IAM 政策,根據請求中提供的標籤 (請求標籤) 來允許或拒絕 操作。您也可以根據正在操作的資源 (資源標籤) 上的標籤建立 IAM 政策。一般而言,資源標籤適用於已存在於資源上的標籤,當您將標籤新增至資源或從中移除標籤時,請求標籤適用於 。
如需標籤條件索引鍵的完整語法和語意,請參閱《IAM 使用者指南》中的使用 AWS 資源標籤控制對資源的存取。如需使用 API Gateway 指定 IAM 政策的詳細資訊,請參閱《API Gateway 開發人員指南》中的使用 IAM 許可控制對 API 的存取。
範例 1:根據資源標籤拒絕動作
您可以拒絕根據標籤對資源執行動作。如果使用者或伺服器資源以金鑰 和值 標記,則下列範例政策會拒絕 DescribeServer、、TagResourceUntagResourceStartServerStopServer、 stage 和 DescribeUser操作prod。
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "transfer:TagResource", "transfer:UntagResource", "transfer:StartServer", "transfer:StopServer", "transfer:DescribeServer", "transfer:DescribeUser" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": "prod" } } } ] }
範例 2:根據資源標籤允許動作
您可以允許根據標籤對資源執行動作。如果使用者或伺服器資源以金鑰 TagResource和值 標記,則下列範例政策允許 UntagResourceDescribeServer、、StartServerStopServer、 stage和 DescribeUser操作prod。
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "transfer:TagResource", "transfer:UntagResource", "transfer:StartServer", "transfer:StopServer", "transfer:DescribeServer", "transfer:DescribeUser" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": "prod" } } } ] }
範例 3:根據請求標籤拒絕建立使用者或伺服器
下列範例政策包含兩個陳述式。如果標籤的成本中心金鑰沒有值,則第一個陳述式會拒絕對所有資源執行 CreateServer 操作。
如果標籤的成本中心索引鍵包含除 1、2 或 3 以外的任何其他值,則第二個陳述式會拒絕CreateServer操作。
注意
此政策允許建立或刪除資源,其中包含名為 的金鑰costcenter和 1、 2或 的值3。
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "transfer:CreateServer" ], "Resource": [ "*" ], "Condition": { "Null": { "aws:RequestTag/costcenter": "true" } } }, { "Effect": "Deny", "Action": "transfer:CreateServer", "Resource": [ "*" ], "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/costcenter": [ "1", "2", "3" ] } } } ] }