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 Gateway 開發人員指南》中的使用 IAM 許可控制對 API 的存取

範例 1:根據資源標籤拒絕動作

您可以拒絕根據標籤對資源執行動作。如果使用者或伺服器資源以金鑰 和值 標記,則下列範例政策會拒絕 DescribeServer、、TagResourceUntagResourceStartServerStopServerstageDescribeUser操作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操作。

注意

此政策允許建立或刪除資源,其中包含名為 的金鑰costcenter12或 的值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" ] } } } ] }