本文档可帮助您确认服务账号和 AWS 账号已成功启用,可以访问 Assured Open Source Software 服务。
如需验证您的 Google Cloud 服务账号或(仅限免费层级 )AWS 账号 ID 是否已启用,可以访问 Assured OSS 代码库和精选软件包组合,请使用 API 列出可用的 Java 或 Python 软件包。为此,您可以直接调用 API, 也可以使用 Cloud Shell 运行 curl 命令 行调用 API。
如果您使用的是免费层级,在极少数情况下,您在提交客户启用 表单 后可能会遇到权限被拒 错误,持续时间为一小时或更长时间。
本文档适用于高级层级和免费层级。
准备工作
安装最新版本的 Google Cloud CLI。如果您之前安装了 Google Cloud CLI,请运行以下命令,确保您拥有最新版本:
gcloud components update如需使用访问 Assured OSS Google Cloud,请为已启用 Assured OSS 的服务账号的父 Google Cloud 项目启用 Artifact Registry API 。如果您使用的是高级层级,则该 API 会在设置期间启用。
将以下网址添加到网络的许可名单中:
*.pkg.devartifactregistry.googleapis.com
设置身份验证
对于 Google Cloud
对于 AWS
以下步骤仅适用于 Assured OSS 的免费层级。
-
- 登录 AWS Management Console。
- 在 AWS Management Console 中,前往 EC2 信息中心,然后选择目标 EC2 实例。
- 依次选择 Actions > Security > Modify IAM Role 。
- 依次选择 Create New IAM Role > Create role 。
- 对于受信任的实体类型,请选择 AWS Service 。
- 对于用例,请选择 EC2 。
- 添加 AmazonEC2ReadOnlyAccess 权限,然后点击下一步 。
- 为 IAM 角色提供一个有意义的名称,然后点击下一步 。
- 返回修改 IAM 角色 。选择新创建的角色,然后点击 Update IAM Role 。
生成凭据配置文件:
gcloud iam workload-identity-pools create-cred-config \ projects/ASSIGNED_PROJECT_NUMBER/locations/global/workloadIdentityPools/aoss-wif-pool/providers/aws-AWS_ACCOUNT_ID-provider \ --service-account=aoss-wif-aws-AWS_ACCOUNT_ID-sa@ASSIGNED_PROJECT_ID.iam.gserviceaccount.com \ --aws \ --output-file=FILEPATH.json替换以下内容:
- AWS_ACCOUNT_ID:您的
AWS 账号的 12 位数字(例如
123456789012)。 - FILEPATH:用于保存配置的文件。+ ASSIGNED_PROJECT_ID:分配给您的项目 ID,如启用邮件中所述。 Google Cloud + ASSIGNED_PROJECT_NUMBER:分配给您的 Google Cloud 项目 编号,如启用邮件中所述。
如果您使用的是 AWS IMDSv2,请将标志
--enable-imdsv2添加到前面的命令中。 如需了解详情,请参阅创建凭据配置。- AWS_ACCOUNT_ID:您的
AWS 账号的 12 位数字(例如
如果您已登录 Google Cloud CLI,请撤消所有现有身份验证:
gcloud auth revoke向进行身份验证 Google Cloud:
gcloud auth login --cred-file=FILEPATH.json其中,FILEPATH 是凭据配置文件的路径。
更新应用默认凭证:
export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json其中,FILEPATH 是服务帐号 密钥或凭据配置文件的路径。
如需排查与身份验证相关的问题,请参阅排查 身份验证 错误。
列出 Assured OSS 中提供的所有 Java 软件包
您可以使用 REST API 列出所有 Java 软件包及其版本。
对于 Assured OSS 的免费层级,请输入以下 HTTP 请求:
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"
对于 Assured OSS 的高级层级,请输入以下 HTTP 请求:
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages
将 PROJECT_ID 替换为您在设置 Assured OSS 时选择的项目的 ID。
以下是连接到免费层级中的 Java 代码库的示例 curl 命令:
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"
该请求会返回类似于以下示例响应的响应:
{
"mavenArtifacts": [
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/com.alibaba:fastjson:1.2.83",
"pomUri":
"us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.pom",
"groupId": "com.alibaba",
"artifactId": "fastjson",
"version": "1.2.83",
"createTime": "2022-06-24T09:10:05.166879Z",
"updateTime": "2022-06-24T09:10:05.166879Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-api:2.17.1",
"pomUri":
"us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.pom",
"groupId": "org.apache.logging.log4j",
"artifactId": "log4j-api",
"version": "2.17.1",
"createTime": "2022-03-16T12:22:50.113695Z",
"updateTime": "2022-03-16T12:22:50.113695Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-core:2.17.1",
"pomUri":
"us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.pom",
"groupId": "org.apache.logging.log4j",
"artifactId": "log4j-core",
"version": "2.17.1",
"createTime": "2022-03-16T12:26:40.317215Z",
"updateTime": "2022-03-16T12:26:40.317215Z"
}
]
}
如果有许多可用的软件包,API 响应可能会进行分页。如果列表不完整,则响应中会返回 连续令牌 nextPageToken。nextPageToken 表示返回的最后一个结果。将 nextPageToken 的值传递给后续请求的 pageToken
参数时,系统将从最后一个结果之后开始返回下一页结果
。
如需查看下一页结果,或增加 每页返回的对象数量,请使用以下网址:
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"
替换以下内容:
- NUMBER:每页要返回的项数。接受的最大值为 1000。
- NEXT_PAGE_TOKEN:JSON 响应中返回的
nextPageToken令牌值 。
或者,您也可以使用以下脚本将上述 API 请求的分页结果收集到一个文件中:
tempFile=$(mktemp)
nextPageToken=""
while
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000&pageToken=$nextPageToken" > $tempFile
nextPageToken=$(grep nextPageToken $tempFile | sed 's/ "nextPageToken": "//' | sed 's/.$//')
grep -v nextPageToken $tempFile >> FILENAME1
[ -n "$nextPageToken" ]
do
:
done
可选:将主要 Java 软件包名称的排序列表写入 FILENAME2
以下额外的命令行操作会过滤返回的原始 Java 软件包列表,以便为您提供仅包含主要软件包名称的列表。
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
| grep artifactId | sort -f | uniq > FILENAME2
可选:将 Java 软件包版本的排序列表写入 FILENAME3
以下额外的命令行操作会过滤返回的原始 Java 软件包列表,以便为您提供仅包含软件包版本的列表。
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
| grep name | sort -f | uniq > FILENAME3
列出 Assured OSS 中提供的所有 Python 软件包
您可以使用 REST API 列出所有 Python 软件包及其版本。这些软件包 适用于 Python 3.8。
对于 Assured OSS 的免费层级,请输入以下 HTTP 请求:
GET https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages
对于 Assured OSS 的高级层级,请输入以下 HTTP 请求:
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"
将 PROJECT_ID 替换为您在设置 Assured OSS 时选择的项目的 ID。
如需列出特定于您的环境的所有软件包,
请使用 generator.sh 脚本。
以下命令是连接到免费层级中的 Assured OSS Python 代码库的示例 curl 命令:
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages"
该请求会返回类似于以下示例响应的响应:
{
"pythonPackages": [
{
"name"