透過直接存取存放區下載 Java 套件

在進階級中,Assured OSS 套件會託管於 Artifact Registry 存放區,該存放區是在您控管的專案中建立。如要直接存取及下載 Java 套件,可以連線至 Assured OSS 的 Artifact Registry 存放區。

本文僅適用於 Assured OSS 進階級。如要瞭解免費方案,請參閱「使用免費方案的直接存放區存取權下載 Java 套件」。

事前準備

  1. 請要求管理員授予您組織的服務帳戶金鑰管理員 (roles/iam.serviceAccountKeyAdmin) IAM 角色。您需要這項權限,才能取得服務帳戶金鑰的 Base64 編碼字串。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

  2. 將 Assured OSS 與 Security Command Center 整合。

  3. 驗證所要求服務帳戶與 Assured OSS 的連線能力。

  4. 安裝最新版本的 Google Cloud CLI。如果您先前已安裝 Google Cloud CLI,請執行下列指令,確認您使用的是最新版本:

    gcloud components update
    

設定驗證方法

Artifact Registry 支援下列驗證方式:

  • 使用憑證輔助程式進行驗證
  • 使用密碼驗證

以下各節說明如何設定這些驗證方式。

使用憑證輔助程式進行驗證

Artifact Registry 提供 Maven wagon 和 Gradle 外掛程式,可做為憑證輔助程式。這個選項的彈性最高。

如要設定應用程式預設憑證,請參閱「設定驗證機制」。

設定憑證輔助程式

如果您使用憑證輔助程式設定驗證,請根據建構工具進行下列變更。

Maven

<project>
  <build>
    <extensions>
      <extension>
        <groupId>com.google.cloud.artifactregistry</groupId>
        <artifactId>artifactregistry-maven-wagon</artifactId>
        <version>2.2.0</version>
      </extension>
    </extensions>
  </build>
</project>

Gradle

plugins {
  id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0"
}

使用密碼驗證

如果 Java 應用程式需要使用指定的使用者名稱和密碼進行驗證,請使用密碼進行驗證。根據建構工具變更設定:

Maven

在 ~/.m2/settings.xml 檔案的 settings 區段中,新增下列驗證設定。如果檔案不存在,請建立檔案。詳情請參閱 Maven 設定參考資料。

<settings>
  <servers>
    <server>
      <id>artifact-registry</id>
      <configuration>
        <httpConfiguration>
          <get>
            <usePreemptive>true</usePreemptive>
          </get>
          <head>
            <usePreemptive>true</usePreemptive>
          </head>
          <put>
            <params>
              <property>
                <name>http.protocol.expect-continue</name>
                <value>false</value>
              </property>
            </params>
          </put>
        </httpConfiguration>
      </configuration>
      <username>_json_key_base64</username>
      <password>KEY</password>
    </server>
  </servers>
</settings>

將 KEY 替換為整個服務帳戶 JSON 金鑰檔案的 Base64 編碼。請執行下列指令來進行這項操作:

cat KEY_FILE_LOCATION  | base64

將 KEY_FILE_LOCATION 替換為服務帳戶 JSON 金鑰檔案的位置。

Gradle

在 ~/.gradle/gradle.properties 檔案中新增下列程式碼,這樣金鑰就不會顯示在建構作業或原始碼控制存放區中。

artifactRegistryMavenSecret = KEY

將 KEY 替換為服務帳戶 JSON 金鑰檔案中的私密金鑰。如果是 json_key_base64,artifactRegistryMavenSecret 包含 base64 加密密碼。例如:base64 -w 0 KEY。

在 build.gradle 檔案中,使用下列範例指定存放區設定:

repositories {
  maven {
    url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/assuredoss-java"
    credentials {
      username = "_json_key_base64"
      password = "$artifactRegistryMavenSecret"
    }
    authentication {
      basic(BasicAuthentication)
    }
  }
}

更改下列內容:

  • PROJECT_ID: 您在設定 Assured OSS 時選取的專案 ID。

  • LOCATION:支援的區域。

更新專案設定檔,指向存放區

Maven

在 Maven 專案的 pom.xml 檔案中,將下列設定新增至適當區段。請勿取代驗證設定。

<project>
  <repositories>
    <repository>
      <id>artifact-registry</id>
      <url>artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/assuredoss-java</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
</project>

更改下列內容:

  • PROJECT_ID: 您在設定 Assured OSS 時選取的專案 ID。

  • LOCATION:支援的區域。

如要進一步瞭解檔案結構,請參閱 Maven POM 參考資料。

Gradle

在 build.gradle 檔案中指定下列存放區設定。請勿取代驗證設定。

repositories {
  maven {
  url "artifactregistry://LOCATION-maven.pkg.dev/PROJECT_ID/assuredoss-java"
  }
}

更改下列內容:

  • PROJECT_ID: 您在設定 Assured OSS 時選取的專案 ID。

  • LOCATION:支援的區域。

更新專案設定檔,新增依附元件

如要下載構件做為建構作業的一部分,必須將構件宣告為依附元件。

Maven

在 Maven 專案的 pom.xml 檔案中,宣告要下載的套件。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.1</version>
</dependency>

Gradle

在 build.gradle 檔案中宣告要下載的套件。

dependencies {
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
}

列出 Assured OSS 中所有可用的 Java 套件

如要使用 API 取得 Artifact Registry 存放區中所有可用 Java 套件的清單,請參閱「列出 Security Command Center 中所有可用的 Java 套件」。

後續步驟