Validar sua conexão

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

Para validar se suas Google Cloud contas de serviço ou o ID da conta da AWS (somente para o nível sem custo financeiro ) estão ativados para acesso ao repositório e ao portfólio de pacotes selecionados do Assured OSS, liste os pacotes Java ou Python disponíveis usando uma API. Para fazer isso, você pode chamar as APIs diretamente, ou usar 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ões negadas 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 comando:

    gcloud components update
    
  2. Para acessar o Assured OSS usando Google Cloud, ative a API Artifact Registry para o projeto Google Cloud pai 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 de conta de serviço. Recomendamos seguir as práticas recomendadas para gerenciar chaves conta de serviço serviço.

  2. Se você já fez login na Google Cloud CLI, revogue a autenticação atual:

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

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

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

  4. Atualize as Application Default Credentials:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    Em que FILEPATH é o caminho para a chave de 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 do EC2 de destino.
    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. Forneça um nome significativo para o 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 ID do projeto Google Cloud atribuído a você, conforme mencionado no e-mail de ativação. + ASSIGNED_PROJECT_NUMBER: o Google Cloud número do projeto atribuído a você, conforme mencionado no e-mail de ativação.

    Se você usar 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á fez login na Google Cloud CLI, revogue a autenticação atual:

    gcloud auth revoke
    
  4. Autentique-se em 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 Application Default Credentials:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

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

Para resolver problemas relacionados à autenticação, consulte Resolver erros 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 selecionado 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 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. O token de continuação nextPageToken é retornado na resposta quando a listagem está incompleta. O nextPageToken representa o último resultado que é 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 conferir 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, você pode usar 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: gravar a lista classificada de nomes de pacotes Java principais em FILENAME2

As seguintes ações adicionais de linha de comando filtram a lista bruta retornada de pacotes Java para fornecer uma lista apenas 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/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 seguintes ações adicionais de linha de comando 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

É possível usar uma REST API para listar todos os pacotes Python e as versões deles. Esses pacotes estão disponíveis para o 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 selecionado 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 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. O token de continuação nextPageToken é retornado na resposta quando a listagem está incompleta. O nextPageToken representa o último resultado que's 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 conferir 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, você pode usar 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: gravar a lista classificada de nomes de pacotes Python principais em FILENAME5

As seguintes ações adicionais de linha de comando filtram a lista bruta retornada de pacotes Python para fornecer uma lista apenas 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/cloud-aoss-python/pythonPackages?pageSize=1000" \
      | grep packageName | sort -f | uniq > FILENAME5

Opcional: gravar a lista classificada das versões do pacote Python em FILENAME6

As seguintes ações adicionais de linha de comando filtram a lista bruta retornada de pacotes Python 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-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 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 selecionado ao configurar o Assured OSS.

Confira a seguir 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 muitos pacotes estiverem 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.

Para conferir 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, você pode usar 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: gravar uma lista classificada de nomes de pacotes Go principais em FILENAME8

As seguintes ações 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: gravar uma lista classificada de versões de pacotes 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. 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 seguintes ações filtram a lista bruta retornada de versões de pacotes 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