Después de habilitar el acceso a Assured Open Source Software (Assured OSS), debes confirmar que tus cuentas de servicio y de Amazon Web Services (AWS) (solo para el nivel gratuito) puedan acceder al servicio de Assured OSS.
Para validar si tus cuentas tienen acceso, enumera los paquetes de Java, Python,
Go o JavaScript (NPM) disponibles. Para enumerar los paquetes, puedes llamar directamente
a las APIs o usar Cloud Shell para ejecutar una
llamada de línea de comandos de curl a la API.
Si usas el nivel gratuito, en casos excepcionales, es posible que se produzcan 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 superior de Google Cloud 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.jsonDonde 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.jsonDonde 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 Crear un nuevo rol de IAM > Crear rol.
- 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.
- Regresa a Modificar rol de IAM. 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. \ --aws \ --output-file=FILEPATH.jsonReemplaza lo siguiente:
- AWS_ACCOUNT_ID: Es el 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: Es el ID del proyecto de Google Cloud que se te asignó, como se menciona en el correo electrónico de habilitación. + ASSIGNED_PROJECT_NUMBER: Es el número de proyecto de 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: Es el 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.jsonDonde 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.jsonDonde 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/LOCATION/repositories/assuredoss-java/packages
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto que seleccionaste cuando configuraste Assured OSS.LOCATION: una región admitida
A continuación, se muestra un comando curl de ejemplo 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 respuesta de ejemplo:
{
"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 se pagine la respuesta de la API. Cuando la
lista está incompleta, se muestra el token de continuación nextPageToken en la
respuesta. nextPageToken representa el último resultado que se
devuelve. 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 devuelve 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 anteriormente 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 de Java principales en FILENAME2
Las siguientes acciones adicionales de la línea de comandos filtran la lista sin procesar que se muestra de los paquetes de Java para darte una lista de solo 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 una 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 que se muestra de los paquetes de Java para darte una lista de solo 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/LOCATION/repositories/assuredoss-python/packages"
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto que seleccionaste cuando configuraste Assured OSS.LOCATION: una región admitida
Para enumerar todos los paquetes específicos de tu entorno,
usa la secuencia de comandos generator.sh.
El siguiente comando es un comando curl de ejemplo para conectarse al repositorio de Assured OSS para Python 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 respuesta de ejemplo:
{
"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 se pagine la respuesta de la API. Cuando la
lista está incompleta, se muestra el token de continuación nextPageToken en la
respuesta. 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 devuelve 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 anteriormente 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 que se muestra de paquetes de Python para darte una lista de solo 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 una 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 que se muestra de paquetes de Python para darte una lista de solo 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/LOCATION/repositories/assuredoss-go/packages
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto que seleccionaste cuando configuraste Assured OSS.LOCATION: una región admitida
A continuación, se muestra un comando curl de ejemplo 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 se pagine la respuesta de la API. Cuando la
lista está incompleta, el token de continuación nextPageToken se devuelve en la
respuesta. 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 devuelve 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 nombres de paquetes de Go principales en FILENAME8
Las siguientes acciones filtran la lista sin procesar que se muestra de los módulos de Go para proporcionarte 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 está 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 paquetes de Go enumerando de forma iterativa las
versiones de cada paquete de Go que se identifica en la lista en FILENAME8.
Con las siguientes acciones, se filtra la lista sin procesar que se muestra de las versiones de paquetes de Go para darte 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
Enumera todos los paquetes de JavaScript (NPM) disponibles en Assured OSS
Puedes usar una API de REST para enumerar todos los paquetes de JavaScript (NPM) 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-javascript-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-javascript/packages
Reemplaza PROJECT_ID por el ID del proyecto que elegiste cuando configuraste Assured OSS.
La solicitud devuelve una respuesta similar a la siguiente:
{
"packages": [
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-javascript-free/packages/express",
"createTime": "2026-06-01T08:00:00.000000Z",
"updateTime": "2026-06-01T08:00:00.000000Z"
},
{
"name": "projects/cloud-aoss/locations/us/repositories/assuredoss-javascript-free/packages/%40stoplight%2Fspectral-core",
"createTime": "2026-06-01T08:00:00.000000Z",
"updateTime": "2026-06-01T08:00:00.000000Z"
}
]
}
Si hay muchos paquetes disponibles, es posible que se pagine la respuesta de la API. Cuando la lista está incompleta, se muestra el token de continuación nextPageToken en la respuesta.