Mendownload paket Python menggunakan akses repositori langsung

Setelah Anda mengintegrasikan Assured OSS dengan Security Command Center, Paket Software Open Source Terjamin adalah di-host di repositori Artifact Registry yang dibuat di dalam project yang kontrol.

Halaman ini menjelaskan cara terhubung ke repositori Artifact Registry untuk Assured OSS untuk langsung mengakses dan mendownload paket Python.

Dokumen ini hanya berlaku untuk tingkat premium Assured OSS. Sebagai paket gratis, lihat Mendownload paket Python menggunakan akses repositori langsung untuk paket gratis.

Sebelum memulai

  1. Integrasikan Assured OSS dengan Security Command Center.

  2. Memvalidasi konektivitas kepada Assured OSS untuk akun layanan yang diminta.

  3. Instal Google Cloud CLI versi terbaru.

  4. Jika Anda sudah pernah menginstal Google Cloud CLI, pastikan Anda memiliki versi terbaru dengan menjalankan perintah:

    gcloud components update
    

Menyiapkan autentikasi

Anda dapat melakukan autentikasi ke paket Python Assured OSS repositori menggunakan salah satu metode berikut:

  • Mengautentikasi dengan keyring
  • Mengautentikasi dengan kunci akun layanan

Bagian berikut menjelaskan cara menyiapkan metode autentikasi ini.

Autentikasi dengan keyring

Untuk menggunakan keyring Python guna melakukan otentikasi ke Artifact Registry, lihat mengautentikasi dengan keyring dan informasi tentang penelusuran kredensial pesanan. Saran dari kami bahwa Anda menggunakan {i> keyring <i}python untuk otentikasi.

Guna menyiapkan keyring untuk autentikasi, lakukan langkah berikut:

  1. Instal library keyring:

    pip install keyring
    
  2. Instal backend Artifact Registry:

    pip install keyrings.google-artifactregistry-auth
    
  3. Tampilkan daftar backend untuk mengonfirmasi penginstalan:

    keyring --list-backends
    

    Daftar harus mencakup hal berikut:

    • ChainerBackend(priority:10)
    • GooglePythonAuth(priority:9)
  4. Untuk mengetahui informasi tentang cara menyiapkan Kredensial Default Aplikasi, lihat Menyiapkan autentikasi.

    Langkah ini memastikan bahwa helper kredensial Assured OSS mendapatkan kunci Anda saat terhubung dengan repositori.

Mengautentikasi dengan kunci akun layanan

Mengautentikasi dengan kunci akun layanan ketika aplikasi memerlukan otentikasi dengan nama pengguna dan {i>password<i}.

Mengganti 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 Assured Open Source Software.
  • Ganti BASE64_KEY dengan encoding base64 dari seluruh file kunci JSON akun layanan. Untuk mengonversi seluruh file kunci JSON akun layanan ke encoding base64, gunakan perintah berikut:

    BASE64_KEY=$(cat KEY_FILE_LOCATION | base64)
    

    Ganti KEY_FILE_LOCATION dengan file kunci JSON lokasi akun layanan.

Instal paket

Petunjuk berikut mengasumsikan bahwa Anda menggunakan PyPI sebagai repositori untuk mendownload dependensi Anda. Jika Anda menggunakan repositori, Anda harus menggunakan langkah yang berbeda untuk mengunduh dependensi.

Instal paket yang ada di Assured OSS

Untuk menentukan paket Python Assured OSS yang ingin didownload, buat dua file requirements.txt. File contoh tersebut 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 mengunduh 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, {i>hash<i} ditentukan untuk semua paket, dan untuk semua versi paket dalam file requirements.txt.
    • -v bersifat opsional. Jika ditentukan, perintah akan memberikan lebih banyak output.
  • Untuk mengunduh paket yang diperlukan yang tidak ada dalam Artifact Registry untuk Assured OSS, jalankan perintah berikut:

     pip install --requirement=requirements-pypi.txt --index-url https://pypi.org/simple -v
    

    Perintah ini juga mengunduh dependensi yang hilang dari paket yang telah Anda unduh menggunakan perintah sebelumnya.

Mencantumkan semua paket Python yang tersedia di Assured OSS

Untuk menggunakan API untuk 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 Python paket. Untuk mendownload hash dan membuat file requirements-google.txt untuk lingkungan Anda, Anda dapat menggunakan salah satu dari dua opsi berikut:

  • Menggunakan 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 mereka) yang tersedia dengan Assured OSS untuk sistem operasi linux. Tujuan paket harus memenuhi batasan seperti versi Python, arsitektur mesin, dan sistem operasi. Anda kemudian dapat menghapus versi paket yang tidak Anda memerlukan dan menggunakan file yang dihasilkan.

Skrip generator.sh membantu dalam dua cara berikut:

  • Perintah ini menghasilkan daftar versi paket Python terbaru yang tersedia dengan Assured OSS yang dapat 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 berikut:

  1. 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 pengaturan.

  2. 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 diunduh.

  3. 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 diunduh. File README.md berisi petunjuk tentang 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 requirements.txt .

Hash artefak tersedia di bucket Cloud Storage yang dapat didownload menggunakan gcloud CLI. {i>Hash<i} untuk setiap dan versinya terletak di gs://cloud-aoss/python/PACKAGE_NAME/VERSION Lokasi bucket Cloud Storage.

Untuk mendownload file requirements.txt, ikuti langkah-langkah berikut:

  1. 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.

  2. Download requirements.txt dari paket dan versi tertentu ke komputer 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 paket
    • VERSION: versi paket
    • PATH_TO_LOCAL_STORE: jalur lokal tempat Anda ingin untuk mendownload file

    Contoh perintah:

    gcloud storage cp gs://cloud-aoss/python/bleach/5.0.0 /tmp/bleach --rekursif

    Contoh file requirements.txt:

    bleach==5.0.0 \
     --hash=sha256:6d286e765bfd3e309209cfa1d063e4d46afa966dea8cb97431c02b1e3067d812
    

    Konten dari setiap file requirements.txt tersebut dapat digabungkan menjadi satu file requirements-google.txt tunggal.

Langkah selanjutnya