使用直接代码库访问下载 Java 软件包

将 Assured OSS 与 Security Command Center 集成后,有保障的开源软件提供的软件包会托管在您拥有控制权的项目中创建的 Artifact Registry 代码库中。

本页面介绍了如何关联到该 Assured OSS 专用的 Artifact Registry 代码库,以便直接访问和下载 Java 软件包。

本文档仅适用于 Assured OSS 高级层级。 对于免费层级,请参阅使用直接代码库访问权限下载 Java 软件包(免费层级)

准备工作

  1. 请让您的管理员向您授予组织的 Service Account Key Admin (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 wagonGradle 插件,可作为凭证帮助程序使用。这是最灵活的方法。

如需设置应用默认凭证,请参阅设置身份验证

设置凭证助手

如果您使用凭证帮助程序设置身份验证,请根据 build 工具进行以下更改。

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 应用需要使用指定的用户名和密码进行身份验证时,请使用密码进行身份验证。根据您的 build 工具更改设置:

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 文件中,使密钥在 build或源代码控制代码库中不可见。

artifactRegistryMavenSecret = KEY

KEY 替换为服务账号 JSON 密钥文件中的私钥。对于 json_key_base64artifactRegistryMavenSecret 包含 base64 加密的密码。例如 base64 -w 0 KEY

build.gradle 文件中,使用以下示例指定代码库设置:

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

PROJECT_ID 替换为您在设置 Assured Open Source Software 时选择的项目的 ID。

更新项目配置文件,使其指向代码库

Maven

将以下设置添加到 Maven 项目的 pom.xml 文件中的相应部分。不替换身份验证设置。

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

PROJECT_ID 替换为您在设置 Assured Open Source Software 时选择的项目的 ID。

如需详细了解文件的结构,请参阅 Maven 的 POM 参考文档

Gradle

build.gradle 文件中指定以下代码库设置。不替换身份验证设置。

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

PROJECT_ID 替换为您在设置 Assured Open Source Software 时选择的项目的 ID。

更新项目配置文件以添加依赖项

要在构建过程中下载工件,必须将制品声明为依赖项。

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 软件包

后续步骤