本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CodeArtifact 身分驗證和字符
CodeArtifact 要求使用者向 服務進行身分驗證,以發佈或取用套件版本。您必須使用 AWS 憑證建立授權字符,以驗證 CodeArtifact 服務。若要建立授權字符,您必須擁有正確的許可。如需建立授權字符所需的許可,請參閱 中的 GetAuthorizationToken項目AWS CodeArtifact 許可參考。如需 CodeArtifact 許可的一般資訊,請參閱 How AWS CodeArtifact 可與 IAM 搭配使用。
若要從 CodeArtifact 擷取授權字符,您必須呼叫 GetAuthorizationToken API。您可以使用 login或 get-authorization-token命令來 AWS CLI呼叫 GetAuthorizationToken 。
注意
根使用者無法呼叫 GetAuthorizationToken。
aws codeartifact login:此命令可讓您輕鬆地設定常用套件管理員,以在單一步驟中使用 CodeArtifact。呼叫 會使用login擷取字符,GetAuthorizationToken並使用字符和正確的 CodeArtifact 儲存庫端點設定套件管理員。支援套件管理員如下:dotnet
npm
nuget
pip
Swift
雙身
aws codeartifact get-authorization-token:對於 不支援的套件管理員login,您可以get-authorization-token直接呼叫 ,然後視需要使用字符設定套件管理員,例如,將套件管理員新增至組態檔案或將其儲存為環境變數。
CodeArtifact 授權字符在預設的 12 小時內有效。權杖可以設定 15 分鐘到 12 小時的生命週期。當生命週期過期時,您必須擷取另一個字符。字符生命週期會在呼叫 get-authorization-token login或 之後開始。
如果在擔任角色時get-authorization-token呼叫 login或 ,您可以將 值設定為 --duration-seconds ,將字符的生命週期設定為等於角色工作階段持續時間的剩餘時間0。否則,字符生命週期與角色的最大工作階段持續時間無關。例如,假設您呼叫 sts assume-role並指定 15 分鐘的工作階段持續時間,然後呼叫 login來擷取 CodeArtifact 授權字符。在此情況下,即使超過 15 分鐘的工作階段持續時間,字符仍在整個 12 小時期間內有效。如需控制工作階段持續時間的資訊,請參閱《IAM 使用者指南》中的使用 IAM 角色。
使用 login命令建立的字符
aws codeartifact login 命令會使用 擷取字符GetAuthorizationToken,並使用字符和正確的 CodeArtifact 儲存庫端點設定您的套件管理員。
下表說明 login命令的參數。
| 參數 | 必要 | 描述 |
|---|---|---|
|
是 |
要驗證的套件管理員。可能的值為 |
|
是 |
儲存庫所屬的網域名稱。 |
|
否 |
網域擁有者的 ID。如果存取您未驗證 AWS 之帳戶所擁有的網域,則需要此參數。如需詳細資訊,請參閱「跨帳戶網域」。 |
|
是 |
要驗證的儲存庫名稱。 |
|
否 |
登入資訊有效的時間,以秒為單位。最小值為 900*,最大值為 43200。 |
|
否 |
將命名空間與您的儲存庫工具建立關聯。 |
|
否 |
僅列印將執行的命令,以將您的工具與儲存庫連線,而無需對組態進行任何變更。 |
*在擔任角色 |
||
下列範例示範如何使用 login命令擷取授權字符。
aws codeartifact login \ --tooldotnet | npm | nuget | pip | swift | twine\ --domainmy_domain\ --domain-owner111122223333\ --repositorymy_repo
如需如何搭配 npm 使用 login命令的特定指引,請參閱 搭配 CodeArtifact 設定和使用 npm。對於 Python,請參閱 搭配 Python 使用 CodeArtifact 。
呼叫 GetAuthorizationToken API 所需的許可
呼叫 CodeArtifact GetAuthorizationToken API 需要 sts:GetServiceBearerToken和 codeartifact:GetAuthorizationToken許可。
若要搭配 CodeArtifact 儲存庫使用套件管理員,您的 IAM 使用者或角色必須允許 sts:GetServiceBearerToken。雖然 sts:GetServiceBearerToken可以新增至 CodeArtifact 網域資源政策,但該許可在該政策中沒有作用。
使用 GetAuthorizationToken API 建立的字符
您可以呼叫 get-authorization-token 從 CodeArtifact 擷取授權字符。
aws codeartifact get-authorization-token \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text
您可以使用 --duration-seconds引數變更字符的有效時間長度。最小值為 900,最大值為 43200。下列範例會建立會持續 1 小時 (3600 秒) 的字符。
aws codeartifact get-authorization-token \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text \ --duration-seconds3600
如果在擔任角色get-authorization-token時呼叫 ,字符生命週期與角色的工作階段持續時間上限無關。您可以將 設定為 --duration-seconds0,將權杖設定為在擔任角色的工作階段持續時間過期時過期。
aws codeartifact get-authorization-token \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text \ --duration-seconds0
如需詳細資訊,請參閱下列文件:
-
如需字符和環境變數的指引,請參閱 使用 環境變數傳遞身分驗證字符。
-
對於 Python 使用者,請參閱 設定不含登入命令的 pip或 使用 CodeArtifact 設定和使用雙身。
-
對於 Maven 使用者,請參閱 搭配 Gradle 使用 CodeArtifact 或 將 CodeArtifact 與 mvn 搭配使用。
-
如需 npm 使用者,請參閱 不使用登入命令設定 npm。
使用 環境變數傳遞身分驗證字符
AWS CodeArtifact 使用 GetAuthorizationToken API 提供的授權字符來驗證和授權來自 Maven 和 Gradle 等建置工具的請求。如需這些身分驗證字符的詳細資訊,請參閱 使用 GetAuthorizationToken API 建立的字符。
您可以將這些身分驗證權杖存放在可由建置工具讀取的環境變數中,以取得從 CodeArtifact 儲存庫擷取套件或將套件發佈至其中所需的權杖。
基於安全考量,此方法偏好將字符存放在檔案,而該檔案可能由其他使用者或程序讀取,或意外簽入來源控制。
-
如中所述設定您的 AWS 登入資料安裝或升級 ,然後設定 AWS CLI。
-
設定
CODEARTIFACT_AUTH_TOKEN環境變數:注意
在某些情況下,您不需要包含
--domain-owner引數。如需詳細資訊,請參閱跨帳戶網域。-
macOS 或 Linux:
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text` -
Windows (使用預設命令 shell):
for /f %i in ('aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i -
Windows PowerShell:
$env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text
-
撤銷 CodeArtifact 授權字符
當已驗證的使用者建立權杖來存取 CodeArtifact 資源時,該權杖會持續到其可自訂的存取期間結束為止。預設存取期間為 12 小時。在某些情況下,您可能想要在存取期間過期之前撤銷對權杖的存取。您可以依照這些指示撤銷 CodeArtifact 資源的存取權。
如果您使用臨時安全登入資料建立存取權杖,例如擔任的角色或聯合身分使用者存取,您可以透過更新 IAM 政策來拒絕存取來撤銷存取。如需詳細資訊,請參閱《IAM 使用者指南》中的停用暫時安全登入資料的許可。
如果您使用長期 IAM 使用者登入資料來建立存取權杖,則必須修改使用者的政策以拒絕存取,或刪除 IAM 使用者。如需詳細資訊,請參閱變更 IAM 使用者的許可或刪除 IAM 使用者。