Este documento te ayuda a confirmar que tus cuentas de servicio y cuentas de AWS se habilitaron correctamente para acceder al servicio de Assured Open Source Software.
Para validar si tus cuentas de servicio Google Cloud o (solo para el nivel gratuito) tu ID de cuenta de AWS están habilitados para acceder al repositorio de Assured OSS y a la cartera de paquetes seleccionados, enumera los paquetes de Java o Python disponibles con una API. Para ello, puedes llamar directamente a las APIs o usar Cloud Shell para ejecutar una llamada a la API desde la línea de comandos de curl.
Si usas el nivel gratuito, en casos excepcionales, es posible que recibas errores de permiso denegado durante una hora o más después de enviar el formulario de habilitación del cliente.
Este documento se aplica tanto al nivel Premium como al nivel gratuito.
Antes de comenzar
Instala la versión más reciente de la Google Cloud CLI. Si ya instalaste Google Cloud CLI, ejecuta el siguiente comando para asegurarte de tener la versión más reciente:
gcloud components updatePara acceder a Assured OSS con Google Cloud,habilita la API de Artifact Registry para el proyecto principal Google Cloud de las cuentas de servicio que habilitaste para Assured OSS. Si usas el nivel premium, la API se habilita durante la configuración.
Agrega las siguientes URLs a la lista de entidades permitidas de tu red:
*.pkg.devartifactregistry.googleapis.com
Configura la autenticación
Para Google Cloud
Genera y descarga la clave de la cuenta de servicio. Te recomendamos que sigas las prácticas recomendadas para administrar claves de cuentas de servicio.
Si ya accediste a Google Cloud CLI, revoca cualquier autenticación existente:
gcloud auth revokeAutentícate en Google Cloud:
gcloud auth login --cred-file=FILEPATH.jsonAquí, FILEPATH es la ruta de acceso a la clave de la cuenta de servicio.
Actualiza las credenciales predeterminadas de la aplicación:
export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.jsonAquí, FILEPATH es la ruta de acceso a la clave de la cuenta de servicio.
Para AWS
Estos pasos solo se aplican al nivel gratuito de Assured OSS.
Configura tu instancia de EC2 para permitir la solicitud de credenciales temporales.
- Accede a la consola de administración de AWS.
- En la consola de administración de AWS, ve al panel de EC2 y selecciona la instancia de EC2 de destino.
- Selecciona Actions > Security > Modify IAM Role.
- Selecciona Create New IAM Role > Create role.
- En el tipo de entidad de confianza, selecciona Servicio de AWS.
- Para el caso de uso, elige EC2.
- Agrega el permiso AmazonEC2ReadOnlyAccess y haz clic en Siguiente.
- Proporciona un nombre significativo para el rol de IAM y haz clic en Siguiente.
- Vuelve a Modify IAM Role. Selecciona el rol recién creado y haz clic en Actualizar rol de IAM.
Genera el archivo de configuración de credenciales:
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.jsonReemplaza lo siguiente:
- AWS_ACCOUNT_ID: Número de 12 dígitos de tu cuenta de AWS (por ejemplo,
123456789012). - FILEPATH: Es el archivo en el que se guardará la configuración. + ASSIGNED_PROJECT_ID: El Google Cloud ID del proyecto que se te asignó, como se menciona en el correo electrónico de habilitación. + ASSIGNED_PROJECT_NUMBER: El número de proyecto Google Cloud que se te asignó, como se menciona en el correo electrónico de habilitación.
Si usas AWS IMDSv2, agrega la marca
--enable-imdsv2al comando anterior. Para obtener más información, consulta Crea una configuración de credenciales.- AWS_ACCOUNT_ID: Número de 12 dígitos de tu cuenta de AWS (por ejemplo,
Si ya accediste a Google Cloud CLI, revoca cualquier autenticación existente:
gcloud auth revokeAutentícate en Google Cloud:
gcloud auth login --cred-file=FILEPATH.jsonAquí, FILEPATH es la ruta de acceso al archivo de configuración de credenciales.
Actualiza las credenciales predeterminadas de la aplicación:
export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.jsonAquí, FILEPATH es la ruta de acceso a la clave de la cuenta de servicio o al archivo de configuración de credenciales.
Para solucionar problemas relacionados con la autenticación, consulta Soluciona problemas de errores de autenticación.
Enumera todos los paquetes de Java disponibles en Assured OSS
Puedes usar una API de REST para enumerar todos los paquetes de Java y sus versiones.
Para el nivel gratuito de Assured OSS, ingresa la siguiente solicitud 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"
Para el nivel Premium de Assured OSS, ingresa la siguiente solicitud 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
Reemplaza PROJECT_ID por el ID del proyecto que elegiste cuando configuraste Assured OSS.
A continuación, se muestra un ejemplo de comando curl para conectarse al repositorio de Java en el nivel gratuito:
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"
La solicitud devuelve una respuesta similar a la siguiente:
{
"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"
}
]
}
Si hay muchos paquetes disponibles, es posible que la respuesta de la API se pagine. El token de continuación nextPageToken se muestra en la respuesta cuando la lista está incompleta. nextPageToken representa el último resultado que se muestra. Cuando pasas el valor de nextPageToken al parámetro pageToken de una solicitud posterior, muestras la siguiente página de resultados, comenzando después del último resultado.
Para ver la siguiente página de resultados o aumentar la cantidad de objetos que se muestran por página, usa la siguiente URL:
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"
Reemplaza lo siguiente:
- NUMBER: Es la cantidad de elementos que se mostrarán por página. El valor máximo aceptado es 1,000.
- NEXT_PAGE_TOKEN: Es el valor del token
nextPageTokenque se devolvió en la respuesta JSON.
Como alternativa, puedes usar la siguiente secuencia de comandos para recopilar los resultados paginados de la solicitud a la API mencionada en un archivo:
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
Opcional: Escribe la lista ordenada de nombres de paquetes Java principales en FILENAME2.
Las siguientes acciones adicionales de la línea de comandos filtran la lista sin procesar de paquetes de Java que se devuelve para proporcionarte una lista solo con los nombres de los paquetes principales.
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
Opcional: Escribe la lista ordenada de las versiones del paquete de Java en FILENAME3.
Las siguientes acciones adicionales de la línea de comandos filtran la lista sin procesar de paquetes de Java que se devuelve para proporcionarte una lista solo con las versiones de los paquetes.
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
Enumera todos los paquetes de Python disponibles en Assured OSS
Puedes usar una API de REST para enumerar todos los paquetes de Python y sus versiones. Estos paquetes están disponibles para Python 3.8.
Para el nivel gratuito de Assured OSS, ingresa la siguiente solicitud HTTP:
GET https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages
Para el nivel Premium de Assured OSS, ingresa la siguiente solicitud 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"
Reemplaza PROJECT_ID por el ID del proyecto que elegiste cuando configuraste Assured OSS.
Para enumerar todos los paquetes específicos de tu entorno, usa la secuencia de comandos generator.sh.
El siguiente comando es un ejemplo de comando curl para conectarse al repositorio de Python de OSS asegurado en el nivel gratuito:
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"
La solicitud devuelve una respuesta similar a la siguiente:
{
"pythonPackages": [
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/Flask:2.1.2",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/flask/Flask-2.1.2-py3-none-any.whl",
"packageName": "Flask",
"version": "2.1.2",
"createTime": "2022-07-13T11:06:54.163313Z",
"updateTime": "2022-07-13T11:06:54.163313Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.3.0",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.3.0-cp38-cp38-linux_x86_64.whl",
"packageName": "ujson",
"version": "5.3.0",
"createTime": "2022-07-13T11:06:17.263638Z",
"updateTime": "2022-07-13T11:06:17.263638Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.4.0",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.4.0-cp38-cp38-linux_x86_64.whl",
"packageName": "ujson",
"version": "5.4.0",
"createTime": "2022-07-13T11:09:00.865162Z",
"updateTime": "2022-07-13T11:09:00.865162Z"
},
{
"name":
"projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/urllib3:1.26.8",
"uri":
"us-python.pkg.dev/cloud-aoss/cloud-aoss-python/urllib3/urllib3-1.26.8-py2.py3-none-any.whl",
"packageName": "urllib3",
"version": "1.26.8",
"createTime": "2022-07-13T11:05:56.529484Z",
"updateTime": "2022-07-13T11:05:56.529484Z"
}
]
}
Si hay muchos paquetes disponibles, es posible que la respuesta de la API se pagine. El token de continuación nextPageToken se muestra en la respuesta cuando la lista está incompleta. nextPageToken representa el último resultado que se muestra. Cuando pasas el valor de nextPageToken al parámetro pageToken de una solicitud posterior, muestras la siguiente página de resultados, comenzando después del último resultado.
Para ver la siguiente página de resultados o aumentar la cantidad de objetos que se muestran por página, usa la siguiente URL en el nivel gratuito:
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"
Reemplaza lo siguiente:
- NUMBER: Es la cantidad de elementos que se mostrarán por página. El valor máximo aceptado es 1,000.
- NEXT_PAGE_TOKEN: Es el valor del token
nextPageTokenque se devolvió en la respuesta JSON.
Como alternativa, puedes usar la siguiente secuencia de comandos para recopilar los resultados paginados de la solicitud a la API mencionada en un archivo.
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-python/pythonPackages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
nextPageToken=$(grep nextPageToken $tempFile | sed 's/ "nextPageToken": "//' | sed 's/.$//')
grep -v nextPageToken $tempFile >> FILENAME4
[ -n "$nextPageToken" ]
do
:
done
Opcional: Escribe la lista ordenada de los nombres de los paquetes principales de Python en FILENAME5.
Las siguientes acciones adicionales de la línea de comandos filtran la lista sin procesar de paquetes de Python que se devuelve para proporcionarte una lista solo con los nombres de los paquetes principales.
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?pageSize=1000" \
| grep packageName | sort -f | uniq > FILENAME5
Opcional: Escribe la lista ordenada de las versiones del paquete de Python en FILENAME6.
Las siguientes acciones adicionales de la línea de comandos filtran la lista sin procesar de paquetes de Python que se devuelve para brindarte una lista solo con las versiones de los paquetes.
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?pageSize=1000" \
| grep name | sort -f | uniq > FILENAME6
Enumera todos los paquetes de Go disponibles en Assured OSS
Puedes usar una API de REST para enumerar todos los paquetes de Go y sus versiones.
Para el nivel gratuito de Assured OSS, ingresa la siguiente solicitud 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/assuredoss-go-free/packages"
Para el nivel Premium de Assured OSS, ingresa la siguiente solicitud 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-go/packages
Reemplaza PROJECT_ID por el ID del proyecto que elegiste cuando configuraste Assured OSS.
A continuación, se muestra un ejemplo de comando curl para conectarse al repositorio de Go en el nivel gratuito:
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages
La solicitud devuelve una respuesta similar a la siguiente:
{
"packages": [
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth",
"createTime": "2025-08-05T06:04:54.442071Z",
"updateTime": "2025-08-05T06:04:54.442071Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth%2Foauth2adapt",
"createTime": "2025-08-05T06:04:41.242052Z",
"updateTime": "2025-08-05T06:04:41.242052Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fcompute%2Fmetadata",
"createTime": "2025-08-05T06:05:31.140186Z",
"updateTime": "2025-08-05T06:05:31.140186Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fiam",
"createTime": "2025-08-05T06:04:54.455300Z",
"updateTime": "2025-08-05T06:04:54.455300Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Flogging",
"createTime": "2025-08-05T06:05:36.186851Z",
"updateTime": "2025-08-05T06:05:36.186851Z"
}
]
}
Si hay muchos paquetes disponibles, es posible que la respuesta de la API se pagine. El token de continuación nextPageToken se muestra en la respuesta cuando la lista está incompleta. nextPageToken representa el último resultado que se muestra.
Cuando pasas el valor de nextPageToken al parámetro pageToken de una solicitud posterior, muestras la siguiente página de resultados, comenzando después del último resultado.
Para ver la siguiente página de resultados o aumentar la cantidad de objetos que se muestran por página, usa la siguiente URL:
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"
Reemplaza lo siguiente:
- NUMBER: Es la cantidad de elementos que se mostrarán por página. El valor máximo aceptado es 1,000.
- NEXT_PAGE_TOKEN: Es el valor del token
nextPageTokenque se devolvió en la respuesta JSON.
Como alternativa, puedes usar la siguiente secuencia de comandos para recopilar los resultados paginados de la solicitud a la API en un archivo:
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/assuredoss-go-free/packages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
nextPageToken=$(grep nextPageToken $tempFile | sed 's/ "nextPageToken": "//' | sed 's/.$//')
grep -v nextPageToken $tempFile >> FILENAME7
[ -n "$nextPageToken" ]
do
:
done
Opcional: Escribe una lista ordenada de los nombres de los paquetes principales de Go en FILENAME8.
Las siguientes acciones filtran la lista sin procesar de módulos de Go que se muestra para brindarte una lista de los nombres de los paquetes principales:
curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000" \
| grep name | sort -f | uniq > FILENAME8
Opcional: Escribe una lista ordenada de versiones de paquetes de Go en FILENAME9.
Aunque no hay disponible una solicitud HTTP directa para enumerar todas las versiones de paquetes de Go, puedes enumerar todas las versiones de un paquete de Go específico. Puedes generar una lista completa de todas las versiones de los paquetes de Go enumerando de forma iterativa las versiones de cada paquete de Go que se identifica en la lista de FILENAME8.
Las siguientes acciones filtran la lista sin procesar de versiones de paquetes de Go que se muestra para brindarte una lista de las versiones de paquetes:
grep -o "packages/.*" FILENAME8 | tr -d '",' | cut -d '/' -f 2 | while read package_name; do curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/$package_name/versions | grep name | sort -f | uniq >> FILENAME9; done
¿Qué sigue?
- Configura el acceso al repositorio remoto
- Descarga paquetes de Java con acceso directo al repositorio.
- Descarga paquetes de Go con acceso directo al repositorio.
- Descarga paquetes de Python con acceso directo al repositorio.
- Configura el acceso al repositorio virtual
- Paquetes Java y Python compatibles
- Paquetes de Go compatibles