Depois de integrar o Assured OSS ao Security Command Center, os pacotes de software Assured Open Source são hospedados em um repositório do Artifact Registry criado em um projeto que você controla.
Esta página explica como se conectar ao repositório do Artifact Registry para Assured OSS para acessar e fazer o download direto dos pacotes Python.
Este documento se aplica apenas ao nível premium do Assured OSS. Para o nível gratuito, consulte Fazer o download de pacotes Python usando o acesso direto ao repositório para o nível gratuito.
Antes de começar
Valide a conectividade com o Assured OSS para as contas de serviço solicitadas.
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 comando:
gcloud components update
Configurar a autenticação
É possível fazer a autenticação no repositório de pacotes Python do Assured OSS usando um dos seguintes métodos:
- Autenticar com um chaveiro
- Autenticar com uma chave de conta de serviço
As seções a seguir descrevem como configurar esses métodos de autenticação.
Autenticar com chaveiro
Para usar o chaveiro do Python para autenticação no Artifact Registry, consulte Como fazer a autenticação com o chaveiro e as informações sobre a ordem de pesquisa de credenciais. Recomendamos que você use o chaveiro do Python para autenticação.
Para configurar o chaveiro para autenticação, faça o seguinte:
Instale a biblioteca
keyring
:pip install keyring
Instale o back-end do Artifact Registry:
pip install keyrings.google-artifactregistry-auth
Liste os back-ends para confirmar a instalação:
keyring --list-backends
A lista precisa incluir o seguinte:
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
Para informações sobre como configurar o Application Default Credentials, consulte Configurar a autenticação.
Essa etapa garante que o auxiliar de credenciais do Assured OSS obtenha sua chave ao se conectar com os repositórios.
Autenticar com uma chave de conta de serviço
Autentique com uma chave de conta de serviço quando o aplicativo exigir autenticação com um nome de usuário e uma senha.
Substitua o URL do repositório de pacotes
https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
pelo
URL
https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
.
Substitua:
- Substitua
PROJECT_ID
pelo ID do projeto que você selecionou ao configurar o software de código aberto Assured. Substitua
BASE64_KEY
pelo arquivo de chave JSON da conta de serviço codificada em base64. Para converter o arquivo de chave JSON da conta de serviço inteiro em codificação base64, use o seguinte comando:BASE64_KEY=$(cat KEY_FILE_LOCATION | base64 -w 0)
Substitua
KEY_FILE_LOCATION
pelo local do arquivo de chave JSON da conta de serviço.
Instalar pacotes
As instruções a seguir pressupõem que você está usando o PyPI como o repositório para fazer o download das dependências. Se você estiver usando outro repositório, será necessário seguir etapas diferentes para fazer o download de dependências.
Instalar pacotes no Assured OSS
Para especificar os pacotes Python do Assured OSS que você quer fazer o download, crie dois arquivos requirements.txt
. Os arquivos de exemplo são os seguintes:
requirements-google.txt
# Packages present in Google's Artifact Registry urllib3==1.26.11 --hash=sha256:1cffe1aa066363a75c856f261c8fce62d87f7c40ce0f46453ea12bf652b12a13 jsonschema==4.13.0 --hash=sha256:29895bfe55b93b75552fbdd1e09aa0c82b7c1c9395d4f267e10c7d43cd31a74e
requirements-pypi.txt
# Packages present in Google's Artifact Registry are mentioned here so that pip # downloads their dependencies from PyPI. urllib3==1.26.11 jsonschema==4.13.0 # Below this comment, add any package version which you need but is NOT # present in Google's Artifact Registry and therefore needs to be downloaded from # PyPI.
Para fazer o download dos pacotes, execute os seguintes comandos:
Para fazer o download dos pacotes necessários que estão presentes no Artifact Registry para o Assured OSS, execute o seguinte:
pip install --require-hashes --requirement=requirements-google.txt \ --index-url https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python repo/simple -v \ --no-deps
Considere o seguinte:
--require-hashes
é opcional. Se incluídos, os hashes são especificados para todos os pacotes e para todas as versões de pacote no arquivorequirements.txt
.- Substitua
BASE64_KEY
pelo arquivo JSON da conta de serviço codificado em base64. -v
é opcional. Se especificado, o comando vai gerar mais saída.
Para fazer o download dos pacotes necessários que não estão presentes no Artifact Registry para o Assured OSS, execute o seguinte:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
Esse comando também faz o download das dependências ausentes dos pacotes que você fez o download usando o comando anterior.
Listar todos os pacotes Python disponíveis no Assured OSS
Para usar uma API e conferir uma lista de todos os pacotes do Python no repositório do Artifact Registry, consulte Listar todos os pacotes do Python disponíveis no Assured OSS.
Como gerar o arquivo requirements-google.txt
Esta seção fornece mais informações sobre como gerar o arquivo requirements-google.txt
necessário para fazer o download dos pacotes do Python. Para fazer o download do hash e gerar o arquivo requirements-google.txt
para seu ambiente, use uma das seguintes opções:
Use um script para gerar um único arquivo de requisitos para todos os artefatos.
Faça o download de um arquivo de requisitos separado para cada artefato.
Confira mais informações sobre essas opções nas seções a seguir.
Opção 1: usar um script para gerar um único arquivo de requisitos para todos os artefatos
Use o script generator.sh
para gerar um único
arquivo requirements-google.txt
para todos os pacotes Python
(com os hashes) disponíveis com o Assured OSS para o sistema operacional Linux. Os
pacotes precisam atender a restrições, como a versão do Python, a arquitetura da máquina
e o sistema operacional. Em seguida, exclua as versões de pacote que você não
precisa e use o arquivo resultante.
O script generator.sh
ajuda das seguintes maneiras:
- Ele gera a lista mais recente de versões de pacotes Python disponíveis com o Assured OSS que podem ser instaladas no seu sistema.
- Ele gera o arquivo
requirements-google.txt
com todos os hashes.
O script necessário e o arquivo README.md
estão disponíveis em um bucket do Cloud Storage (gs://cloud-aoss/utils/python-requirements-txt/v1.0
), que pode ser feito o download usando a Google Cloud CLI.
Para fazer o download do script e do arquivo README.md
, siga estas etapas:
Autentique-se com a conta de serviço para acessar o bucket do Cloud Storage usando o seguinte comando:
gcloud auth activate-service-account --key-file KEY_FILE
Substitua
KEY_FILE
pelo caminho do arquivo que contém as credenciais da conta de serviço fornecidas durante a configuração.Faça o download do
generator.sh
na sua máquina usando o seguinte comando:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
Substitua
PATH_TO_LOCAL_STORE
pelo caminho local em que você quer salvar o arquivo salvo.Faça o download do arquivo
README.md
usando o seguinte comando:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
Substitua
PATH_TO_LOCAL_STORE
pelo caminho local em que você quer salvar o arquivo salvo. O arquivoREADME.md
contém instruções sobre como usar o script.
Para executar o script, use os seguintes comandos:
Para gerar o arquivo
requirements-google.txt
, execute o seguinte comando:chmod +x generator.sh ./generator.sh
Para conferir as informações do pacote em um arquivo CSV, execute o seguinte comando:
chmod +x generator.sh ./generator.sh -i
Opção 2: fazer o download de requirements.txt
para cada artefato necessário
Também é possível fazer o download de um arquivo requirements.txt
separado (que contém o hash)
para cada artefato do Python e combiná-los em um único arquivo requirements.txt
.
Os hashes de artefato estão disponíveis em um bucket do Cloud Storage que pode ser feito o download
usando a CLI gcloud. Os hashes de cada
pacote e uma versão estão localizados no local do bucket gs://cloud-aoss/python/PACKAGE_NAME/VERSION
do Cloud Storage.
Para fazer o download do arquivo requirements.txt
, siga estas etapas:
Autentique-se com a conta de serviço para acessar o bucket do Cloud Storage usando o seguinte comando:
gcloud auth activate-service-account --key-file KEY_FILE
Substitua
KEY_FILE
pelo caminho do arquivo que contém as credenciais da conta de serviço.Faça o download do
requirements.txt
de um pacote e versão específicos para sua máquina local usando o seguinte comando:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
Substitua:
PACKAGE_NAME
: o nome do pacoteVERSION
: a versão do pacotePATH_TO_LOCAL_STORE
: o caminho local para onde você quer fazer o download do arquivo.
Exemplo de comando:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach
--recursiveArquivo
requirements.txt
de amostra:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
O conteúdo de cada arquivo
requirements.txt
pode ser combinado em um único arquivorequirements-google.txt
.
A seguir
- Fazer o download de pacotes Java usando o acesso direto ao repositório no nível premium
- Acessar metadados de segurança e verificar pacotes no nível premium