本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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對具有IAM許可的 的存取。 API
範例 1:根據資源標籤拒絕動作
您可以拒絕根據標籤對資源執行動作。如果使用者或伺服器資源標記了 金鑰和 值 TagResource
,則下列範例政策會拒絕 DescribeServer
、、UntagResource
StartServer
StopServer
、 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
UntagResource
DescribeServer
、、StartServer
StopServer
、 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" ] } } } ] }