AWS Transfer Family 基於標籤的策略範例 - AWS Transfer Family

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

AWS Transfer Family 基於標籤的策略範例

以下是如何根據標籤控制資 AWS Transfer Family 源存取的範例。

使用標籤來控制對 AWS Transfer Family 資源的存取

IAM 政策中的條件是您用來指定 AWS Transfer Family 資源許可的語法的一部分。您可以根據這些 AWS Transfer Family 資源的標籤來控制對資源 (例如使用者、伺服器、角色和其他實體) 的存取。標籤均為金鑰值對。如需有關標記資源的詳細資訊,請參閱標記 AWSAWS 一般參考.

在中 AWS Transfer Family,資源可以有標籤,而某些動作可以包含標籤。建立 IAM 政策時,可使用標籤條件索引鍵來控制以下項目:

  • 哪些使用者可以根據資 AWS Transfer Family 源具有的標籤對資源執行動作。

  • 可在動作請求中傳遞的標記。

  • 請求中是否可使用特定的標籤鍵。

透過使用以標籤為基礎的存取控制,您可以套用比 API 層級更精細的控制。與使用以資源為基礎的存取控制相比,您也可以套用更多的動態控制。您可以根據請求中提供的標籤 (請求標記) 建立允許或拒絕作業的 IAM 政策。您也可以根據正在操作的資源(資源標籤)的標籤建立 IAM 政策。一般來說,資源標籤適用於已在資源上的標籤,請求標籤適用於向資源添加標籤或從資源中刪除標籤時使用。

如需標籤條件金鑰的完整語法和語意,請參閱 IAM 使用者指南中的使用資源標籤控制資源的存取。 AWS 如需使用 API Gateway 指定 IAM 政策的詳細資訊,請參閱《API Gateway 開發人員指南》中的使用 IAM 許可控制 API 的存取。

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

您可以拒絕要根據標籤對資源執行的動作。下列範例原則會拒絕TagResourceUntagResourceStartServerStopServerDescribeServer、和DescribeUser作業,如果使用者或伺服器資源標記為索引鍵stage和值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:允許根據資源標籤執行動作

您可以允許根據標籤對資源執行動作。如果使用者或伺服器資源使用索引鍵和值標記DescribeServer,則下列範例原則允TagResource許、、、stageDescribeUser作業prodUntagResource StartServer StopServer

{ "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" ] } } } ] }