在免费层级中,有保障的开源软件提供的软件包会托管在由 Google 管理的 Artifact Registry 代码库中。
本页面介绍了如何关联到该 Assured OSS 专用的 Artifact Registry 代码库,以便直接访问和下载 Java 软件包。
本文档仅适用于免费层级。对于高级层级,请参阅使用直接代码库访问权限下载 Java 软件包。
准备工作
请让您的管理员向您授予组织的 Service Account Key Admin (
roles/iam.serviceAccountKeyAdmin) IAM 角色。您需要此权限才能获取服务账号密钥的 base64 编码字符串。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。配置 Assured OSS。对于免费层级,请提交客户启用表单,以启用对 Assured OSS 的访问权限。
验证所请求的服务账号与 Assured OSS 的连接。
为用于访问 Assured OSS 的服务账号的父项目 Google Cloud 启用 Artifact Registry API。
安装最新版本的 Google Cloud CLI。 如果您之前安装了 Google Cloud CLI,请运行以下命令,确保您拥有最新版本:
gcloud components update
设置身份验证
Artifact Registry 支持以下身份验证方法:
- 使用凭证帮助程序进行身份验证
- 使用密码进行身份验证
以下部分介绍了如何设置这些身份验证方法。
使用凭证帮助程序进行身份验证
Artifact Registry 提供 Maven wagon 和 Gradle 插件,可作为凭证帮助程序使用。这是最灵活的方法。
设置凭证助手
根据 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_base64,artifactRegistryMavenSecret 包含 base64 加密的密码。例如 base64 -w 0 KEY。
在 build.gradle 文件中,使用以下示例指定代码库设置:
repositories {
maven {
url "artifactregistry://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java"
credentials {
username = "_json_key_base64"
password = "$artifactRegistryMavenSecret"
}
authentication {
basic(BasicAuthentication)
}
}
}
更新项目配置文件以指向代码库
Maven
将以下设置添加到 Maven 项目的 pom.xml 文件中的相应部分。不替换身份验证设置。
<project>
<repositories>
<repository>
<id>artifact-registry</id>
<url>artifactregistry://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
如需详细了解文件的结构,请参阅 Maven 的 POM 参考文档。
Gradle
在 build.gradle 文件中指定以下代码库设置。不替换身份验证设置。
repositories {
maven {
url "artifactregistry://us-maven.pkg.dev/cloud-aoss/cloud-aoss-java"
}
}
更新项目配置文件以添加依赖项
要在构建过程中下载工件,必须将制品声明为依赖项。
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 软件包
您可以访问 Assured OSS 的 Artifact Registry 代码库中没有的软件包。
Assured OSS 经过预配置,将 Assured OSS 作为首选仓库,将 Maven Central 或 PyPI 等规范化公共仓库作为次要仓库。如需使用此(预览版)功能,请前往以下网址:
https://us-maven.pkg.dev/cloud-aoss/java
列出 Assured OSS 中所有可用的 Java 软件包
如需使用 API 获取 Artifact Registry 仓库中所有 Java 软件包的列表,请参阅列出 Assured OSS 中提供的所有 Java 软件包。
后续步骤
- 使用直接代码库访问权限下载 Python 软件包
- 设置虚拟制品库访问权限
- 支持的 Java 和 Python 软件包
- 使用 Cloud Storage 访问安全元数据
- 使用 Artifact Analysis API 访问安全元数据