搭配使用標籤與目錄儲存貯體的 S3 存取點
AWS 標籤是鍵值對,可保留有關資源的中繼資料,在此情況下為目錄儲存貯體的 Amazon S3 Access Points。您可以在建立存取點或管理現有存取點上的標籤時,標記存取點。如需有關標籤的一般資訊,請參閱 成本分配或屬性型存取控制 (ABAC) 的標記。
注意
對於目錄儲存貯體的存取點使用標籤,除了標準的 S3 API 請求費率之外,不會收取額外費用。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價
使用標籤與目錄儲存貯體存取點的常見方法
屬性型存取控制 (ABAC) 可讓您擴展存取權限,並根據目錄儲存貯體的標籤授予存取點的存取權。如需有關在 Amazon S3 中使用 ABAC 的詳細資訊,請參閱使用 ABAC 的標籤。
S3 存取點的 ABAC
Amazon S3 Access Points 支援使用標籤的屬性型存取控制 (ABAC)。在您的 AWS Organizations、IAM 和存取點政策中,使用標籤型條件索引鍵。對企業而言,Amazon S3 中的 ABAC 支援跨多個 AWS 帳戶進行授權。
在您的 IAM 政策中,您可以透過使用下列全域條件索引鍵,根據儲存貯體的標籤來控制對目錄儲存貯體存取點的存取:
-
aws:ResourceTag/key-name-
使用此鍵來將您在政策中所指定的標籤鍵值對與連接到資源的鍵值對進行比較。例如,您可以要求只在資源擁有連接標籤鍵
Dept和值Marketing時才允許資源的存取。如需詳細資訊,請參閱控制對 AWS 資源的存取。
-
-
aws:RequestTag/key-name-
使用此鍵來將請求中傳遞的標籤鍵/值對與您在政策中所指定的標籤對進行比較。例如,您可以檢查請求是否包含標籤鍵
Dept並且其具有值Accounting。如需詳細資訊,請參閱在 AWS 請求期間控制存取。您可以使用此條件索引鍵,限制在TagResource和CreateAccessPointAPI 操作期間可以傳遞哪些標籤鍵值對。
-
-
aws:TagKeys-
使用此鍵來將請求中的標籤鍵與您在政策中所指定的鍵進行比較。當使用政策來控制使用標籤的存取時,建議您使用
aws:TagKeys條件鍵來定義允許的標籤鍵。如需範例政策和詳細資訊,請參閱根據標籤金鑰控制存取權限。您可以為具有標籤的目錄儲存貯體建立存取點。若要在CreateAccessPointAPI 操作期間允許標記,您必須建立同時包含s3express:TagResource和s3express:CreateAccessPoint動作的政策。然後,您可以使用aws:TagKeys條件索引鍵,以強制在CreateAccessPoint請求中使用特定的標籤。
-
-
s3express:AccessPointTag/tag-key-
使用此條件索引鍵,透過使用標籤的存取點來授予特定資料的許可權。在 IAM 政策中使用
aws:ResourceTag/tag-key時,存取點和存取點指向的儲存貯體,都需要具有相同標籤,因為在與授權期間兩者都會考量到。如果您只想透過存取點標籤來控制對資料的存取,則可以使用s3express:AccessPointTag/tag-key條件索引鍵。
-
目錄儲存貯體存取點的 ABAC 政策範例
請參閱下列適用於目錄儲存貯體存取點的 ABAC 政策的範例。
1.1 - IAM 政策,可建立或修改具有特定標籤的存取點
在此 IAM 政策中,具有此政策的使用者或角色只有在存取點於存取點建立請求中,以標籤索引鍵 project 和標籤值 Trinity 來標記存取點時,才能建立存取點。只要 TagResource 請求包含標籤鍵值對 project:Trinity,他們也可以在目錄儲存貯體的現有存取點上新增或修改標籤。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAccessPointWithTags", "Effect": "Allow", "Action": [ "s3express:CreateAccessPoint", "s3express:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }
1.2 - 存取點政策,可使用標籤限制儲存貯體上的操作
在此存取點政策中,只要在存取點 project 標籤的值符合主體的 project 標籤值時,IAM 主體 (使用者和角色) 就能在存取點上使用 CreateSession 動作來執行操作。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowObjectOperations", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3express:CreateSession", "Resource": "arn:aws::s3express:region:111122223333:access-point/", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }my-access-point
1.3 - IAM 政策,可修改維護標記治理之現有資源上的標籤
在此 IAM 政策中,只有在存取點的 project 標籤值符合主體的 project 標籤值時,IAM 主體 (使用者或角色) 才能修改存取點上的標籤。這些存取點只允許 aws:TagKeys 條件索引鍵中指定的四個標籤 project、environment、owner 和 cost-center。這有助於強制執行標籤治理、防止未經授權的標籤修改,並且使所有存取點的標記結構描述保持一致。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3express:TagResource" ], "Resource": "arn:aws::s3express:region:111122223333:accesspoint/", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "my-access-pointproject", "environment", "owner", "cost-center" ] } } } ] }
1.4 - 使用 s3express:AccessPointTag 條件索引鍵
在此 IAM 政策中,只有在用於存取儲存貯體的存取點具有標籤索引鍵 Environment 和標籤值 Production 時,條件陳述式才會允許存取儲存貯體的資料。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificAccessPoint", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3express:region:111122223333:accesspoint/", "Condition": { "StringEquals": { "s3express:AccessPointTag/Environment": "Production" } } } ] }my-access-point
使用目錄儲存貯體存取點的標籤
您可以使用 Amazon S3 主控台、AWS 命令列介面 (CLI)、AWS SDK,或使用 S3 API 來新增或管理目錄儲存貯體的存取點的標籤:TagResource、UntagResource 和 ListTagsForResource。如需詳細資訊,請參閱: