網域概觀 - CodeArtifact

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

網域概觀

當您使用時 CodeArtifact,網域適用於下列項目:

  • 重複資料刪除儲存:即使資產在 1 或 1,000 個儲存庫中可用,也只需在網域中儲存一次。這意味著您只需支付一次存儲費用。

  • 快速複製:將套件從上游 CodeArtifact 存放庫提取至下游或使用 CopyPackageVersions API 時,只需更新中繼資料記錄。不會複製任何資產。這使得設置新的存儲庫進行測試或測試變得快速。如需詳細資訊,請參閱 使用中的上游存儲庫 CodeArtifact

  • 儲存庫和團隊之間輕鬆共用:網域中的所有資產和中繼資料都使用單一 AWS KMS key (KMS 金鑰) 加密。您不需要為每個儲存庫管理金鑰,也不需要為單一金鑰授與多個帳戶存取權。

  • 跨多個儲存庫套用原則:網域管理員可以在整個網域中套用原則。這包括限制哪些帳戶可以存取網域中的儲存庫,以及誰可以設定與公用存放庫的連線,做為套件來源使用。如需詳細資訊,請參閱網域原則

  • 唯一的存儲庫名稱:該域為存儲庫提供了命名空間。存放庫名稱只需要在網域中是唯一的。您應該使用易於理解的有意義的名稱。

網域名稱在帳戶中必須是唯一的。

您無法建立沒有網域的存放庫。當您使用 CreateRepositoryAPI 建立存放庫時,您必須指定網域名稱。您無法將存放庫從一個網域移至另一個網域。

存放庫可以由擁有該網域的相同 AWS 帳戶或不同帳戶所擁有。如果擁有帳戶不同,則必須將存放庫擁有的帳戶授與網域資源的CreateRepository權限。您可以使用PutDomainPermissionsPolicy命令將資源策略新增至網域來執行此操作。

雖然一個組織可以有多個網域,但建議您擁有一個包含所有已發行成品的單一生產網域,以便開發團隊可以在其組織中尋找並共用封裝。第二個生產前網域對於測試生產網域組態的變更很有用。

跨帳戶網域

網域名稱只需要在帳戶中是唯一的,這表示同一地區內可能有多個具有相同名稱的網域。因此,如果您想要存取未經驗證的帳戶所擁有的網域,則必須在 CLI 和主控台中提供網域擁有者 ID 以及網域名稱。請參閱下列 CLI 範例。

存取您經過驗證的帳戶所擁有的網域:

在您驗證的帳戶中存取網域時,您只需要指定網域名稱即可。下列範例會列出您帳戶所擁有之 my_ domain 網域中 my_ repo 儲存庫中的套件。

aws codeartifact list-packages --domain my_domain --repository my_repo

存取您未經驗證的帳戶所擁有的網域:

存取您未經驗證的帳戶所擁有的網域時,您需要指定網域擁有者以及網域名稱。下列範例會列出其他網域中其他網域中其他-repo 儲存庫中的套件,這些套件是您未經驗證的帳戶所擁有。請注意加入--domain-owner參數。

aws codeartifact list-packages --domain other-domain --domain-owner 111122223333 --repository other-repo

支援的 AWS KMS 金鑰類型 CodeArtifact

CodeArtifact 僅支援對稱的 KMS 金鑰。您無法使用非對稱 KMS 金鑰來加密 CodeArtifact 網域。如需詳細資訊,請參閱識別對稱和非對稱 KMS 金鑰。若要瞭解如何建立新的客戶受管金鑰,請參閱AWS Key Management Service 開發人員指南中的建立對稱加密 KMS 金鑰

CodeArtifact 支援 AWS KMS 外部金鑰存放區 (XKS)。您必須負責使用 XKS 金鑰的金鑰作業的可用性、耐久性和延遲,這可能會影響到的可用性、耐久性和延遲。 CodeArtifact搭 CodeArtifact配使用 XKS 鍵的一些效果範例:

  • 由於要求套件的每個資產及其所有相依性都會受到解密延遲的影響,因此可以隨著 XKS 作業延遲的增加而大幅增加建置延遲。

  • 由於所有資產都經過加密 CodeArtifact,因此遺失 XKS 金鑰材料將導致使用 XKS 金鑰與網域相關聯的所有資產遺失。

如需 XKS 金鑰的詳細資訊,請參閱AWS Key Management Service 開發人員指南中的外部金鑰存放區