Depois de integrar o Assured OSS com o Security Command Center, os pacotes do Assured Open Source Software são alojados num repositório do Artifact Registry criado num projeto que controla.
Esta página explica como pode estabelecer ligação ao repositório do Artifact Registry para o Assured OSS para aceder diretamente e transferir os pacotes Python.
Este documento aplica-se apenas ao nível premium do Assured OSS. Para o nível gratuito, consulte o artigo Transfira pacotes Python através do acesso direto ao repositório para o nível gratuito.
Antes de começar
Valide a conetividade ao OSS garantido para as contas de serviço pedidas.
Instale a versão mais recente da CLI do Google Cloud.
Se instalou a CLI Google Cloud anteriormente, certifique-se de que tem a versão mais recente executando o comando:
gcloud components update
Configure a autenticação
Pode autenticar-se no repositório do pacote Python do Assured OSS através de um dos seguintes métodos:
- Efetue a autenticação com um porta-chaves
- Autentique com uma chave de conta de serviço
As secções seguintes descrevem como configurar estes métodos de autenticação.
Autentique com o porta-chaves
Para usar o keyring do Python para se autenticar no Artifact Registry, consulte o artigo sobre a autenticação com o keyring e as informações sobre a ordem de pesquisa de credenciais. Recomendamos que use o keyring do Python para a autenticação.
Para configurar o conjunto de chaves 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 deve incluir o seguinte:
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
Para obter informações sobre a configuração das Credenciais padrão da aplicação, consulte o artigo Configure a autenticação.
Este passo garante que o auxiliar de credenciais do Assured OSS obtém a sua chave quando se liga aos repositórios.
Autentique com uma chave de conta de serviço
Autentique com uma chave de conta de serviço quando a aplicação requer autenticação com um nome de utilizador e uma palavra-passe.
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 PROJECT_ID
pelo ID do projeto que
selecionou quando configurou o software de código aberto garantido.
Instale pacotes
As instruções seguintes pressupõem que está a usar o PyPI como o repositório para transferir as suas dependências. Se estiver a usar outro repositório, tem de seguir passos diferentes para transferir dependências.
Instale pacotes existentes no Assured OSS
Para especificar os pacotes Python de OSS assegurado que quer transferir, crie dois ficheiros requirements.txt
. Os ficheiros 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 transferir os pacotes, execute os seguintes comandos:
Para transferir os pacotes necessários presentes no Artifact Registry para o OSS garantido, 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 pacotes no ficheirorequirements.txt
.-v
é opcional. Se for especificado, o comando dá mais resultados.
Para transferir os pacotes necessários que não estão presentes no Artifact Registry para o OSS garantido, execute o seguinte:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
Este comando também transfere as dependências em falta dos pacotes que transferiu através do comando anterior.
Apresente todos os pacotes Python disponíveis no Assured OSS
Para usar uma API para obter uma lista de todos os pacotes Python no repositório do Artifact Registry, consulte Liste todos os pacotes Python disponíveis no Assured OSS.
Gerar o ficheiro requirements-google.txt
Esta secção faculta informações adicionais sobre a geração do ficheiro
requirements-google.txt
necessário para transferir os pacotes Python. Para transferir o hash e gerar o ficheiro requirements-google.txt
para o seu ambiente, pode usar uma das seguintes duas opções:
Use um script para gerar um único ficheiro de requisitos para todos os artefactos.
Transfira um ficheiro de requisitos separado para cada artefacto.
As secções seguintes fornecem mais informações acerca destas opções.
Opção 1: use um script para gerar um único ficheiro de requisitos para todos os artefactos
Use o script generator.sh
para gerar um único ficheiro requirements-google.txt
para todos os pacotes Python (juntamente com os respetivos hashs) disponíveis com o Assured OSS para o sistema operativo Linux. Os pacotes têm de cumprir restrições como a versão do Python, a arquitetura da máquina e o sistema operativo. Em seguida, pode eliminar as versões do pacote que não
precisa e usar o ficheiro resultante.
O script generator.sh
ajuda das duas seguintes formas:
- Gera a lista mais recente de versões de pacotes Python disponíveis com o Assured OSS que podem ser instaladas com êxito no seu sistema.
- Gera o ficheiro
requirements-google.txt
juntamente com todos os hashes.
O script necessário e o respetivo ficheiro README.md
estão disponíveis num contentor do Cloud Storage
(gs://cloud-aoss/utils/python-requirements-txt/v1.0
) que pode ser transferido
através da CLI do Google Cloud.
Para transferir o script e o ficheiro README.md
, siga estes passos:
Faça a autenticação com a conta de serviço para aceder ao contentor do Cloud Storage usando o seguinte comando:
gcloud auth activate-service-account --key-file KEY_FILE
Substitua
KEY_FILE
pelo caminho para o ficheiro que contém as credenciais da conta de serviço fornecidas durante a configuração.Transfira o
generator.sh
para a sua máquina através do 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 onde quer guardar o ficheiro transferido.Transfira o ficheiro
README.md
através do 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 onde quer guardar o ficheiro transferido. O ficheiroREADME.md
contém instruções sobre como usar o script.
Para executar o script, use os seguintes comandos:
Para gerar o ficheiro
requirements-google.txt
, execute o seguinte comando:chmod +x generator.sh ./generator.sh
Para obter as informações do pacote num ficheiro CSV, execute o seguinte comando:
chmod +x generator.sh ./generator.sh -i
Opção 2: transfira o requirements.txt
para cada artefacto necessário
Também pode transferir um ficheiro requirements.txt
separado (que contém o hash) para cada artefacto do Python e, em seguida, combiná-los num único ficheiro requirements.txt
.
Os hashes dos artefactos estão disponíveis num contentor do Cloud Storage que pode ser transferido
através da CLI gcloud. Os hashes de cada pacote e uma versão encontram-se na localização do contentor do Cloud Storage.gs://cloud-aoss/python/PACKAGE_NAME/VERSION
Para transferir o ficheiro requirements.txt
, siga estes passos:
Faça a autenticação com a conta de serviço para aceder ao contentor do Cloud Storage usando o seguinte comando:
gcloud auth activate-service-account --key-file KEY_FILE
Substitua
KEY_FILE
pelo caminho para o ficheiro que contém as credenciais da conta de serviço.Transfira o
requirements.txt
de um pacote e uma versão específicos para a sua máquina local através do seguinte comando:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
Substitua o seguinte:
PACKAGE_NAME
: o nome do pacoteVERSION
: a versão do pacotePATH_TO_LOCAL_STORE
: o caminho local onde quer transferir o ficheiro
Exemplo de comando:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach
--recursiveFicheiro de exemplo
requirements.txt
:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
O conteúdo de cada ficheiro
requirements.txt
pode ser combinado num único ficheirorequirements-google.txt
.
O que se segue?
- Transfira pacotes Java através do acesso direto ao repositório no nível premium
- Aceda aos metadados de segurança e valide pacotes no nível premium