Validar sua conexão

Este documento ajuda você a confirmar se as contas de serviço e da AWS foram ativadas para acessar o serviço Assured Open Source Software.

Para validar se suas contas de serviço Google Cloud ou (somente para o nível sem custo financeiro) o ID da conta da AWS estão ativados para acesso ao repositório e portfólio de pacotes selecionados do Assured OSS, liste os pacotes Java ou Python disponíveis usando uma API. Para isso, chame as APIs diretamente 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á enfrentar 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 Google Cloud, ative a API Artifact Registry no projeto Google Cloud principal das contas de serviço ativadas 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 conta de serviço serviço.

  2. Se você já tiver feito login na Google Cloud CLI, revogue qualquer autenticação existente:

    gcloud auth revoke
    
  3. Autenticar-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 as credenciais padrão do aplicativo:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

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

Para a 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 AWS Management Console, acesse o painel do EC2 e selecione a instância de destino do EC2.
    3. Selecione Ações > Segurança > Modificar função do IAM.
    4. Selecione Criar nova função do IAM > Criar função.
    5. Em "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.iam.gserviceaccount.com \
    --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 Google Cloud ID do projeto atribuído a você, conforme mencionado no e-mail de ativação. + ASSIGNED_PROJECT_NUMBER: o número do projeto 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 credenciais.

  3. Se você já tiver feito login na Google Cloud CLI, revogue qualquer autenticação existente:

    gcloud auth revoke
    
  4. Autenticar-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 as credenciais padrão do aplicativo:

    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 Resolver problemas de autenticação.

Listar todos os pacotes Java disponíveis no Assured OSS

É possível usar 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/us/repositories/assuredoss-java/packages

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

Confira 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 a esta:

  {
    "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. O token de continuação nextPageToken é retornado na resposta quando a listagem está incompleta. 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/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 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: grave a lista classificada de nomes de pacotes Java principais em FILENAME2

As seguintes ações de linha de comando adicionais filtram a lista bruta retornada de pacotes Java para fornecer uma lista apenas com os nomes de 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: grave a lista classificada das versões do pacote Java em FILENAME3

As seguintes ações de linha de comando adicionais filtram a lista bruta retornada de pacotes Java para fornecer uma lista apenas das versões de 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-java/mavenArtifacts?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME3

Listar todos os pacotes Python disponíveis no Assured OSS

É possível usar 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/us/repositories/assuredoss-python/packages"

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

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 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 a esta:

  {
  "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. O token de continuação nextPageToken é retornado na resposta quando a listagem está incompleta. 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 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 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: grave a lista classificada de nomes de pacotes Python principais em FILENAME5

As seguintes ações adicionais da linha de comando filtram a lista bruta retornada de pacotes 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 de versões do pacote Python em FILENAME6.

As seguintes ações adicionais da linha de comando filtram a lista bruta retornada de pacotes Python para fornecer uma lista apenas das versões de 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/us/repositories/assuredoss-go/packages

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

Confira abaixo um exemplo de comando curl para se conectar ao repositório 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 houver muitos pacotes disponíveis, a resposta da API poderá ser paginada. O token de continuação nextPageToken é retornado na resposta quando a listagem está incompleta. 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: escreva uma lista classificada de nomes de pacotes Go principais em FILENAME8.

As ações a seguir filtram a lista bruta retornada de módulos Go para fornecer uma lista dos nomes de 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 do pacote Go em FILENAME9

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

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

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

A seguir