本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用標籤來控制 CodeArtifact 資源的存取
IAM 使用者政策陳述式中的條件是您用來指定 CodeArtifact 動作所需資源許可的語法的一部分。在條件中使用標記是控制資源和請求的存取權限的方式之一。如需標記 CodeArtifact 資源的詳細資訊,請參閱 標記 資源。本主題討論的是標記型的存取控制。
設計 IAM 政策時,您可能會透過授予對特定資源的存取來設定精細許可。隨著您管理的資源數量增加,此任務變得越來越困難。標記資源並在政策陳述式條件中使用標籤,可讓此任務更輕鬆。您可以對具有特定標籤的任何資源大量授予存取。然後,您會在建立期間或之後,對相關資源重複套用此標籤。
可以將標記連接到資源或在請求中將標記傳遞至支援標記的服務。在 CodeArtifact 中,資源可以有標籤,而某些動作可以包含標籤。在建立 IAM 政策時,可使用標記條件鍵來控制以下項目:
-
哪些使用者可以根據網域或儲存庫資源已有的標籤,在網域或儲存庫資源上執行動作。
-
可在動作請求中傳遞的標籤。
-
請求中是否可使用特定的標籤鍵。
關於標籤條件索引鍵的完整語法和語義,請參閱 IAM 使用者指南中的使用標籤控制存取。
重要
在資源上使用標籤來限制動作時,標籤必須位於動作操作所在的資源上。例如,若要拒絕具有標籤的DescribeRepository許可,標籤必須位於每個儲存庫上,而非網域上。如需 CodeArtifact 中的動作清單及其操作的資源,AWS CodeArtifact 許可參考請參閱 。
標籤型存取控制範例
下列範例示範如何在 CodeArtifact 使用者的政策中指定標籤條件。
範例 1:根據請求中的標籤限制動作
AWSCodeArtifactAdminAccess 受管使用者政策可讓使用者無限制地對任何資源執行任何 CodeArtifact 動作。
下列政策會限制此能力,並拒絕未經授權的使用者建立儲存庫的許可,除非請求包含特定標籤。為此,如果請求未指定costcenter具有其中一個值1或 的標籤,則會拒絕該CreateRepository動作2。除了受管使用者政策之外,客戶的管理員必須將此 IAM 政策連接到未授權的 IAM 使用者。
範例 2:根據資源標籤限制動作
AWSCodeArtifactAdminAccess 受管使用者政策可讓使用者無限制地對任何資源執行任何 CodeArtifact 動作。
下列政策會限制此能力,並拒絕未經授權的使用者對指定網域中的儲存庫執行動作的許可。在作法上,如果資源有名為 Key1 的標記,且值為 Value1 或 Value2,則拒絕某些動作。(aws:ResourceTag 條件索引鍵用於依據資源上的標籤來控制資源的存取。) 除了受管使用者政策之外,客戶的管理員必須將此 IAM 政策連接到未授權的 IAM 使用者。
範例 3:根據資源標籤允許動作
下列政策授予使用者在 CodeArtifact 中對儲存庫和套件執行動作和取得相關資訊的許可。
若要這樣做,如果儲存庫具有名為 Key1且值為 的標籤,則允許特定動作Value1。( aws:RequestTag 條件索引鍵用來控制哪些標籤可在 IAM 請求中傳遞。) aws:TagKeys 條件可確保標籤索引鍵區分大小寫。此政策適用於未連接 AWSCodeArtifactAdminAccess 受管使用者政策的 IAM 使用者。受管政策可讓使用者無限制地對任何資源執行任何 CodeArtifact 動作。
範例 4:根據請求中的標籤允許動作
下列政策授予使用者在 CodeArtifact 中指定網域中建立儲存庫的許可。
若要這樣做,如果請求中的建立資源 API 指定名稱為 Key1且值為 的標籤,則允許 CreateRepository和 TagResource動作Value1。( aws:RequestTag 條件索引鍵用來控制哪些標籤可在 IAM 請求中傳遞。) aws:TagKeys 條件可確保標籤索引鍵區分大小寫。此政策適用於未連接 AWSCodeArtifactAdminAccess 受管使用者政策的 IAM 使用者。受管政策可讓使用者無限制地對任何資源執行任何 CodeArtifact 動作。