AWS Transfer Family 標籤型政策範例 - AWS Transfer Family

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

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、、UntagResourceStartServerStopServerstageDescribeUser操作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、、StartServerStopServerstageDescribeUser操作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以及 12或 的值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" ] } } } ] }