Setelah Anda mengintegrasikan Assured OSS dengan Security Command Center, paket Assured Open Source Software dihosting di repositori Artifact Registry yang dibuat dalam project yang Anda kontrol.
Halaman ini menjelaskan cara menghubungkan ke repositori Artifact Registry untuk Assured OSS guna mengakses dan mendownload paket Python secara langsung.
Dokumen ini hanya berlaku untuk tingkat premium Assured OSS. Untuk paket gratis, lihat Mendownload paket Python menggunakan akses repositori langsung untuk paket gratis.
Sebelum memulai
Mengintegrasikan Assured OSS dengan Security Command Center.
Validasi konektivitas ke Assured OSS untuk akun layanan yang diminta.
Instal Google Cloud CLI versi terbaru.
Jika Anda telah menginstal Google Cloud CLI sebelumnya, pastikan Anda memiliki versi terbaru dengan menjalankan perintah:
gcloud components update
Menyiapkan autentikasi
Anda dapat mengautentikasi ke repositori paket Python OSS Terjamin menggunakan salah satu metode berikut:
- Mengautentikasi dengan ring kunci
- Melakukan autentikasi dengan kunci akun layanan
Bagian berikut menjelaskan cara menyiapkan metode autentikasi ini.
Mengautentikasi dengan keyring
Untuk menggunakan keyring Python guna melakukan autentikasi ke Artifact Registry, lihat melakukan autentikasi dengan keyring dan informasi tentang urutan penelusuran kredensial. Sebaiknya Anda menggunakan keyring Python untuk autentikasi.
Untuk menyiapkan ring kunci untuk autentikasi, lakukan langkah berikut:
Instal library
keyring
:pip install keyring
Instal backend Artifact Registry:
pip install keyrings.google-artifactregistry-auth
Cantumkan backend untuk mengonfirmasi penginstalan:
keyring --list-backends
Daftar harus menyertakan hal berikut:
ChainerBackend(priority:10)
GooglePythonAuth(priority:9)
Untuk mengetahui informasi tentang cara menyiapkan Kredensial Default Aplikasi, lihat Menyiapkan autentikasi.
Langkah ini memastikan bahwa helper kredensial OSS Terjamin mendapatkan kunci Anda saat terhubung dengan repositori.
Melakukan autentikasi dengan kunci akun layanan
Lakukan autentikasi dengan kunci akun layanan saat aplikasi memerlukan autentikasi dengan nama pengguna dan sandi.
Ganti URL repositori paket
https://us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
dengan
URL
https://_json_key_base64:BASE64_KEY@us-python.pkg.dev/PROJECT_ID/assuredoss-python/simple
Ganti kode berikut:
- Ganti
PROJECT_ID
dengan ID project yang Anda pilih saat menyiapkan Software Open Source Terjamin. Ganti
BASE64_KEY
dengan file kunci JSON akun layanan berenkode base64. Untuk mengonversi seluruh file kunci JSON akun layanan ke enkode base64, gunakan perintah berikut:BASE64_KEY=$(cat KEY_FILE_LOCATION | base64 -w 0)
Ganti
KEY_FILE_LOCATION
dengan lokasi file kunci JSON akun layanan.
Menginstal paket
Petunjuk berikut mengasumsikan bahwa Anda menggunakan PyPI sebagai repositori untuk mendownload dependensi. Jika menggunakan repositori lain, Anda harus menggunakan langkah yang berbeda untuk mendownload dependensi.
Menginstal paket yang ada di Assured OSS
Untuk menentukan paket Python Assured OSS yang ingin Anda download, buat dua file requirements.txt
. File contohnya adalah sebagai berikut:
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.
Untuk mendownload paket, jalankan perintah berikut:
Untuk mendownload paket yang diperlukan yang ada di Artifact Registry untuk Assured OSS, jalankan perintah berikut:
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
Pertimbangkan hal berikut:
--require-hashes
bersifat opsional. Jika disertakan, hash ditentukan untuk semua paket dan untuk semua versi paket dalam filerequirements.txt
.- Ganti
BASE64_KEY
dengan file JSON akun layanan yang dienkode base64. -v
bersifat opsional. Jika ditentukan, perintah akan memberikan lebih banyak output.
Untuk mendownload paket yang diperlukan yang tidak ada di Artifact Registry untuk Assured OSS, jalankan perintah berikut:
pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
Perintah ini juga mendownload dependensi paket yang tidak ada yang telah Anda download menggunakan perintah sebelumnya.
Mencantumkan semua paket Python yang tersedia di Assured OSS
Untuk menggunakan API guna mendapatkan daftar semua paket Python di repositori Artifact Registry, lihat Mencantumkan semua paket Python yang tersedia di Assured OSS.
Membuat file requirements-google.txt
Bagian ini memberikan informasi tambahan tentang cara membuat
file requirements-google.txt
yang Anda perlukan untuk mendownload paket
Python. Untuk mendownload hash dan membuat file requirements-google.txt
untuk lingkungan Anda, Anda dapat menggunakan salah satu dari dua opsi berikut:
Gunakan skrip untuk membuat satu file persyaratan untuk semua artefak.
Download file persyaratan terpisah untuk setiap artefak.
Bagian berikut memberikan informasi selengkapnya tentang opsi ini.
Opsi 1: Gunakan skrip untuk membuat satu file persyaratan untuk semua artefak
Gunakan skrip generator.sh
untuk membuat satu
file requirements-google.txt
untuk semua paket Python
(beserta hash-nya) yang tersedia dengan Assured OSS untuk sistem operasi Linux. Paket
harus memenuhi batasan seperti versi Python, arsitektur mesin,
dan sistem operasi. Kemudian, Anda dapat menghapus versi paket yang tidak
diperlukan dan menggunakan file yang dihasilkan.
Skrip generator.sh
membantu dalam dua cara berikut:
- Skrip ini menghasilkan daftar terbaru versi paket Python yang tersedia dengan Assured OSS yang berhasil diinstal di sistem Anda.
- Tindakan ini akan menghasilkan file
requirements-google.txt
beserta semua hash.
Skrip yang diperlukan dan file README.md
-nya tersedia di bucket Cloud Storage (gs://cloud-aoss/utils/python-requirements-txt/v1.0
) yang dapat didownload menggunakan Google Cloud CLI.
Untuk mendownload skrip dan file README.md
, ikuti langkah-langkah berikut:
Lakukan autentikasi dengan akun layanan untuk mengakses bucket Cloud Storage menggunakan perintah berikut:
gcloud auth activate-service-account --key-file KEY_FILE
Ganti
KEY_FILE
dengan jalur ke file yang berisi kredensial akun layanan yang diberikan selama penyiapan.Download
generator.sh
ke komputer Anda menggunakan perintah berikut:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/generator.sh PATH_TO_LOCAL_STORE --recursive
Ganti
PATH_TO_LOCAL_STORE
dengan jalur lokal tempat Anda ingin menyimpan file yang didownload.Download file
README.md
menggunakan perintah berikut:gcloud storage cp gs://cloud-aoss/utils/python-requirements-txt/v1.0/README.md PATH_TO_LOCAL_STORE --recursive
Ganti
PATH_TO_LOCAL_STORE
dengan jalur lokal tempat Anda ingin menyimpan file yang didownload. FileREADME.md
berisi petunjuk cara menggunakan skrip.
Untuk menjalankan skrip, gunakan perintah berikut:
Untuk membuat file
requirements-google.txt
, jalankan perintah berikut:chmod +x generator.sh ./generator.sh
Untuk mendapatkan informasi paket dalam file CSV, jalankan perintah berikut:
chmod +x generator.sh ./generator.sh -i
Opsi 2: Download requirements.txt
untuk setiap artefak yang diperlukan
Anda juga dapat mendownload file requirements.txt
terpisah (berisi hash)
untuk setiap artefak Python, lalu menggabungkannya menjadi satu file
requirements.txt
.
Hash artefak tersedia di bucket Cloud Storage yang dapat didownload menggunakan gcloud CLI. Hash untuk setiap
paket dan versi berada di lokasi bucket Cloud Storage gs://cloud-aoss/python/PACKAGE_NAME/VERSION
.
Untuk mendownload file requirements.txt
, ikuti langkah-langkah berikut:
Lakukan autentikasi dengan akun layanan untuk mengakses bucket Cloud Storage menggunakan perintah berikut:
gcloud auth activate-service-account --key-file KEY_FILE
Ganti
KEY_FILE
dengan jalur ke file yang berisi kredensial akun layanan.Download
requirements.txt
dari paket dan versi tertentu ke mesin lokal Anda menggunakan perintah berikut:gcloud storage cp gs://cloud-aoss/python/PACKAGE_NAME/VERSION PATH_TO_LOCAL_STORE --recursive
Ganti kode berikut:
PACKAGE_NAME
: nama paketVERSION
: versi paketPATH_TO_LOCAL_STORE
: jalur lokal tempat Anda ingin mendownload file
Contoh perintah:
gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach
--recursiveContoh file
requirements.txt
:bleach==5.0.0 \ --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
Konten setiap file
requirements.txt
tersebut dapat digabungkan menjadi satu filerequirements-google.txt
.
Langkah selanjutnya
- Mendownload paket Java menggunakan akses repositori langsung di tingkat premium
- Mengakses metadata keamanan dan memverifikasi paket di tingkat premium