Validar sua conexão

Depois de ativar o acesso ao Assured Open Source Software (Assured OSS), confirme se as contas de serviço e da Amazon Web Services (AWS) (somente para o nível sem custo financeiro) podem acessar o serviço do Assured OSS.

Para validar se as contas têm acesso, liste os pacotes Java, Python, Go ou JavaScript (NPM) disponíveis. Para listar os pacotes, chame diretamente as APIs ou use o Cloud Shell para executar uma chamada de linha de comando curl para a API.

Se você estiver usando o nível sem custo financeiro, em casos raros, poderá receber erros de permissão negada por uma hora ou mais depois de enviar o formulário de ativação do cliente.

Este documento se aplica aos níveis Premium e sem custo financeiro.

Antes de começar

  1. Instale a versão mais recente da Google Cloud CLI. Se você já instalou a Google Cloud CLI, verifique se tem a versão mais recente executando o seguinte:

    gcloud components update
    
  2. Para acessar o Assured OSS usando o Google Cloud, ative a API Artifact Registry para o projeto pai do Google Cloud das contas de serviço que você ativou para o Assured OSS. Se você estiver usando o nível Premium, a API será ativada durante a configuração.

  3. Adicione os seguintes URLs à lista de permissões da sua rede:

    • *.pkg.dev
    • artifactregistry.googleapis.com

Configurar a autenticação

Para Google Cloud

  1. Gere e faça o download da chave da conta de serviço. Recomendamos seguir as práticas recomendadas para gerenciar chaves de conta de serviço.

  2. Se você já tiver feito login na Google Cloud CLI, revogue as autenticações existentes:

    gcloud auth revoke
    
  3. Autentique-se no Google Cloud:

    gcloud auth login --cred-file=FILEPATH.json
    

    Em que FILEPATH é o caminho para a chave da conta de serviço.

  4. Atualize o Application Default Credentials:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    Em que FILEPATH é o caminho para a chave da conta de serviço.

Para AWS

Estas etapas se aplicam apenas ao nível sem custo financeiro do Assured OSS.

  1. Configure sua instância do EC2 para permitir a solicitação de credenciais temporárias.

    1. Faça login no Console de Gerenciamento da AWS.
    2. No Console de Gerenciamento da AWS, acesse o painel do EC2 e selecione a instância de destino do EC2.
    3. Selecione Ações > Segurança > Modificar papel do IAM.
    4. Selecione Criar novo papel do IAM > Criar papel.
    5. Para o tipo de entidade confiável, selecione Serviço da AWS.
    6. Para o caso de uso, escolha EC2.
    7. Adicione a permissão AmazonEC2ReadOnlyAccess e clique em Próxima.
    8. Dê um nome significativo ao papel do IAM e clique em Próxima.
    9. Volte para Modificar papel do IAM. Selecione o papel recém-criado e clique em Atualizar papel do IAM.
  2. Gere o arquivo de configuração de credenciais:

    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.json
    

    Substitua:

    • AWS_ACCOUNT_ID: o número de 12 dígitos da sua conta da AWS (por exemplo, 123456789012).
    • FILEPATH: o arquivo em que a configuração será salva. + ASSIGNED_PROJECT_ID: o ID do projeto do Google Cloud atribuído a você, conforme mencionado no e-mail de ativação. + ASSIGNED_PROJECT_NUMBER: o número do projeto do Google Cloud atribuído a você, conforme mencionado no e-mail de ativação.

    Se você usar o AWS IMDSv2, adicione a flag --enable-imdsv2 ao comando anterior. Para mais informações, consulte Criar uma configuração de credencial.

  3. Se você já tiver feito login na Google Cloud CLI, revogue as autenticações existentes:

    gcloud auth revoke
    
  4. Autentique-se no Google Cloud:

    gcloud auth login --cred-file=FILEPATH.json
    

    Em que FILEPATH é o caminho para o arquivo de configuração de credenciais.

  5. Atualize o Application Default Credentials:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    Em que FILEPATH é o caminho para a chave da conta de serviço ou o arquivo de configuração de credenciais.

Para resolver problemas relacionados à autenticação, consulte Solução de problemas de erros de autenticação.

Listar todos os pacotes Java disponíveis no Assured OSS

Use uma API REST para listar todos os pacotes Java e as versões deles.

Para o nível sem custo financeiro do Assured OSS, insira a seguinte solicitação 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 o nível Premium do Assured OSS, insira a seguinte solicitação 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

Substitua:

Veja a seguir um exemplo de comando curl para se conectar ao repositório Java no nível sem custo financeiro:

  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"

A solicitação retorna uma resposta semelhante ao exemplo a seguir:

  {
    "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"
      }
    ]
  }

Se houver muitos pacotes disponíveis, a resposta da API poderá ser paginada. Quando a listagem está incompleta, o token de continuação nextPageToken é retornado na resposta. O nextPageToken representa o último resultado retornado. Ao transmitir o valor de nextPageToken para o parâmetro pageToken de uma solicitação subsequente, você retorna a próxima página de resultados, começando após o último.

Para ver a próxima página de resultados ou aumentar o número de objetos retornados por página, use o seguinte URL:

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

Substitua:

  • NUMBER: o número de itens a serem retornados por página. O valor máximo aceito é 1.000.
  • NEXT_PAGE_TOKEN: o valor do token nextPageToken retornado na resposta JSON.

Como alternativa, use o script a seguir para coletar os resultados paginados da solicitação de API mencionada acima em um arquivo:

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: gravar uma lista classificada de nomes de pacotes Java principais em FILENAME2

As ações de linha de comando adicionais a seguir filtram a lista bruta retornada de pacotes Java para fornecer uma lista apenas com os nomes dos pacotes principais.

  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: gravar a lista classificada das versões do pacote Java em FILENAME3

As ações de linha de comando adicionais a seguir filtram a lista bruta retornada de pacotes Java para fornecer uma lista apenas das versões do pacote.

  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

Listar todos os pacotes Python disponíveis no Assured OSS

Use uma API REST para listar todos os pacotes do Python e as versões deles. Esses pacotes estão disponíveis para Python 3.8.

Para o nível sem custo financeiro do Assured OSS, insira a seguinte solicitação HTTP:

  GET https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages

Para o nível Premium do Assured OSS, insira a seguinte solicitação 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"

Substitua:

Para listar todos os pacotes específicos do seu ambiente, use o script generator.sh.

O comando a seguir é um exemplo de comando curl para se conectar ao repositório do Python do Assured OSS no nível sem custo financeiro:

  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"

A solicitação retorna uma resposta semelhante ao exemplo a seguir:

  {
  "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"
      }
    ]
  }

Se houver muitos pacotes disponíveis, a resposta da API poderá ser paginada. Quando a listagem está incompleta, o token de continuação nextPageToken é retornado na resposta. O nextPageToken representa o último resultado retornado. Ao transmitir o valor de nextPageToken para o parâmetro pageToken de uma solicitação subsequente, você retorna a próxima página de resultados, começando após o último.

Para ver a próxima página de resultados ou aumentar o número de objetos retornados por página, use o seguinte URL no nível sem custo financeiro:

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

Substitua:

  • NUMBER: o número de itens a serem retornados por página. O valor máximo aceito é 1.000.
  • NEXT_PAGE_TOKEN: o valor do token nextPageToken retornado na resposta JSON.

Como alternativa, use o script a seguir para coletar os resultados paginados da solicitação de API mencionada acima em um arquivo.

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: gravar a lista classificada de nomes de pacotes Python principais em FILENAME5

As ações de linha de comando adicionais a seguir filtram a lista bruta retornada de pacotes do Python para fornecer uma lista apenas com os nomes dos pacotes principais.

  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: grave a lista classificada das versões do pacote Python em FILENAME6.

As seguintes ações de linha de comando adicionais filtram a lista bruta retornada de pacotes do Python para fornecer uma lista apenas das versões dos pacotes.

  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

Listar todos os pacotes Go disponíveis no Assured OSS

É possível usar uma API REST para listar todos os pacotes do Go e as versões deles.

Para o nível sem custo financeiro do Assured OSS, insira a seguinte solicitação 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 o nível Premium do Assured OSS, insira a seguinte solicitação 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

Substitua:

Veja a seguir um exemplo de comando curl para se conectar ao repositório do Go no nível sem custo financeiro:

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

A solicitação retorna uma resposta semelhante a esta:

{
  "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"
    }
  ]
}

Se muitos pacotes estiverem disponíveis, a resposta da API poderá ser paginada. Quando a listagem está incompleta, o token de continuação nextPageToken é retornado na resposta. O nextPageToken representa o último resultado retornado. Ao transmitir o valor de nextPageToken para o parâmetro pageToken de uma solicitação subsequente, você retorna a próxima página de resultados, começando após o último resultado.

Para ver a próxima página de resultados ou aumentar o número de objetos retornados por página, use o seguinte URL:

"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

Substitua:

  • NUMBER: o número de itens a serem retornados por página. O valor máximo aceito é 1.000.
  • NEXT_PAGE_TOKEN: o valor do token nextPageToken retornado na resposta JSON.

Como alternativa, use o script a seguir para coletar os resultados paginados da solicitação de API em um arquivo:

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: grave uma lista classificada de nomes de pacotes principais do Go em FILENAME8.

As ações a seguir filtram a lista bruta de módulos do Go retornada para fornecer uma lista dos nomes dos pacotes principais:

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: grave uma lista classificada de versões de pacotes do Go em FILENAME9.

Embora uma solicitação HTTP direta para listar todas as versões de pacotes Go não esteja disponível, é possível listar todas as versões de um pacote Go específico. É possível gerar uma lista completa de todas as versões de pacotes do Go listando iterativamente as versões de cada pacote do Go identificado na lista em FILENAME8.

As ações a seguir filtram a lista bruta retornada de versões de pacotes do Go para fornecer uma lista das versões de pacotes:

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

Listar todos os pacotes JavaScript (NPM) disponíveis no Assured OSS

É possível usar uma API REST para listar todos os pacotes JavaScript (NPM) e as versões deles.

Para o nível sem custo financeiro do Assured OSS, insira a seguinte solicitação 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 o nível Premium do Assured OSS, insira a seguinte solicitação 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

Substitua PROJECT_ID pelo ID do projeto que você selecionou ao configurar o Assured OSS.

A solicitação retorna uma resposta semelhante a esta:

{
  "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"
    }
  ]
}

Se muitos pacotes estiverem disponíveis, a resposta da API poderá ser paginada. Quando a listagem está incompleta, o token de continuação nextPageToken é retornado na resposta.

A seguir