Melakukan integrasi dengan Assured OSS untuk keamanan kode

Assured Open Source Software (Assured OSS) memungkinkan Anda meningkatkan keamanan kode dengan menggunakan paket OSS yang digunakan Google untuk alur kerja developernya sendiri. Saat Anda menggunakan Assured OSS, developer Anda dapat memanfaatkan keahlian dan pengalaman keamanan yang diterapkan Google untuk mengamankan dependensi open source-nya sendiri.

Saat mengintegrasikan Assured OSS dengan Security Command Center, Anda dapat melakukan hal berikut:

  • Pilih dari lebih dari 3.700 paket Java dan Python yang diseleksi dan paling populer, termasuk project machine learning umum dan kecerdasan buatan seperti TensorFlow, Pandas, dan Scikit-learn.
  • Konfigurasikan proxy yang aman untuk mendownload semua paket Java, Python, dan JavaScript dengan pengesahan dari Assured OSS, sehingga menjadikan Google pemasok yang terkenal dan tepercaya.
  • Gunakan SBOM dan VEX di Assured OSS yang disediakan dalam format standar industri seperti SPDX dan CycloneDX untuk mengetahui lebih banyak tentang bahan-bahan Anda.
  • Meningkatkan keyakinan terhadap integritas paket yang Anda gunakan melalui provenance yang ditandatangani dan terbukti dapat dimodifikasi dari Google.
  • Kurangi risiko keamanan saat Google secara aktif memindai, menemukan, dan memperbaiki kerentanan baru dalam paket yang diseleksi.

Sebelum memulai

Selesaikan tugas berikut sebelum Anda menyelesaikan tugas lainnya di halaman ini.

Aktifkan tingkat Security Command Center Enterprise

Pastikan tingkat Security Command Center Enterprise diaktifkan di tingkat organisasi dan Anda telah menyelesaikan enam langkah pertama dalam panduan penyiapan.

Menyiapkan izin di tingkat organisasi

Anda harus menyiapkan izin di level organisasi dan level project.

  1. Pastikan Anda memiliki peran berikut di organisasi: Security Center Admin, Organization Admin

    Memeriksa peran

    1. Di konsol Google Cloud, buka halaman IAM.

      Buka IAM
    2. Pilih organisasi.
    3. Di kolom Akun utama, cari baris yang berisi alamat email Anda.

      Jika alamat email Anda tidak ada di kolom tersebut, berarti Anda tidak memiliki peran apa pun.

    4. Di kolom Peran untuk baris yang berisi alamat email Anda, periksa apakah daftar peran menyertakan peran yang diperlukan.

    Memberikan peran

    1. Di konsol Google Cloud, buka halaman IAM.

      Buka IAM
    2. Pilih organisasi.
    3. Klik Berikan akses.
    4. Di kolom Akun utama baru, masukkan alamat email Anda.
    5. Di daftar Pilih peran, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.

Menyiapkan izin di level project

  1. Pastikan Anda memiliki peran berikut di project: Service Usage Admin, Service Account Admin, Project IAM Admin

    Memeriksa peran

    1. Di konsol Google Cloud, buka halaman IAM.

      Buka IAM
    2. Pilih project.
    3. Di kolom Akun utama, cari baris yang berisi alamat email Anda.

      Jika alamat email Anda tidak ada di kolom tersebut, berarti Anda tidak memiliki peran apa pun.

    4. Di kolom Peran untuk baris yang berisi alamat email Anda, periksa apakah daftar peran menyertakan peran yang diperlukan.

    Memberikan peran

    1. Di konsol Google Cloud, buka halaman IAM.

      Buka IAM
    2. Pilih project.
    3. Klik Berikan akses.
    4. Di kolom Akun utama baru, masukkan alamat email Anda.
    5. Di daftar Pilih peran, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.

Menyiapkan Google Cloud CLI

Anda dapat menggunakan sampel gcloud CLI di halaman ini dari salah satu lingkungan pengembangan berikut:

  • Cloud Shell: Untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, aktifkan Cloud Shell.

    Di bagian bawah halaman ini, sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi dimulai.

  • Shell lokal: Untuk menggunakan gcloud CLI di lingkungan pengembangan lokal, instal dan initialize gcloud CLI.

Menyiapkan Assured OSS

Konsol

  1. Di konsol Google Cloud, buka halaman Risk Overview Security Command Center.

    Buka Ringkasan Risiko

  2. Pastikan Anda melihat organisasi tempat Anda mengaktifkan tingkat Security Command Center Enterprise.

  3. Klik Lihat panduan penyiapan.

  4. Klik Siapkan keamanan kode.

  5. Pilih akun layanan baru atau pilih akun layanan yang ada yang ingin Anda tambahi izin Assured Open Source Software.

  6. Pilih project Google Cloud tempat Anda ingin menemukan resource Assured OSS.

  7. Klik Set up Assured OSS.

    Proses penyiapan akan otomatis menyelesaikan hal berikut:

    • Jika dipilih, buat akun layanan baru assuredoss@PROJECT_ID.gservicesaccount.com.
    • Menetapkan peran Assured OSS User ke akun layanan yang ditetapkan untuk digunakan dengan Assured OSS.
    • Menetapkan peran Assured OSS Admin ke akun pengguna yang login agar akun tersebut dapat mengonfigurasi layanan.
    • Mengaktifkan Assured Open Source Software API dan Artifact Registry API, jika belum diaktifkan.
    • Siapkan layanan proxy Assured OSS dalam instance Artifact Registry dalam project yang Anda pilih. Repositori disediakan untuk setiap bahasa (Java, Python, dan JavaScript). Repositori ini dapat secara otomatis mengambil paket dari portofolio yang telah diseleksi. Jika paket tidak tersedia sebagai bagian dari portofolio yang diseleksi, repositori akan mengalihkan permintaan ke repositori kanonis. Layanan proxy hanya mendukung region AS.
    • Memberi Anda dan akun layanan izin untuk mengakses metadata dan notifikasi paket dari project milik Google.
  8. Buat kunci akun layanan untuk setiap akun layanan Assured OSS yang ditetapkan dan download kunci tersebut dalam format JSON.

  9. Pada command line di komputer lokal, jalankan perintah berikut pada file kunci yang didownload untuk mendapatkan string berenkode base64:

    base64 KEY_FILENAME.json
    

    Ganti KEY_FILENAME.json dengan nama kunci akun layanan yang telah Anda download.

    Anda memerlukan string berenkode base64 saat menyiapkan repositori jarak jauh untuk Assured OSS.

  10. Untuk mendownload paket, gunakan endpoint yang disediakan Assured OSS untuk setiap bahasa. Catat endpoint ini untuk digunakan nanti.

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    Ganti PROJECT_ID dengan ID project yang Anda pilih saat menyiapkan Assured OSS.

  11. Klik Next. Konfigurasikan Assured OSS dengan pengelola repositori artefak organisasi Anda, seperti JFrog Artifactory atau Sonatype Nexus.

gcloud

  1. Lakukan autentikasi ke Google Cloud dengan akun pengguna yang ingin Anda gunakan untuk mengaktifkan Assured OSS:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login
    
  2. Telusuri project tempat Anda ingin menemukan resource Assured OSS:

    gcloud alpha projects search --query="displayName=PROJECT_NAME"
    

    Ganti PROJECT_NAME dengan nama project.

  3. Setel project tempat Anda ingin menemukan resource Assured OSS:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan project ID.

  4. Berikan peran ke akun pengguna untuk menyiapkan Assured OSS:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/assuredoss.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/serviceusage.serviceUsageAdmin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/iam.serviceAccountAdmin
    

    Dengan email@domain.com adalah alamat email untuk akun pengguna Anda.

  5. Mengaktifkan Assured OSS dalam project. Mengaktifkan Assured OSS juga akan mengaktifkan Artifact Registry API.

    gcloud services enable assuredoss.googleapis.com
    
  6. Agar dapat membuat akun layanan baru untuk Assured OSS alih-alih menggunakan akun layanan yang ada, selesaikan langkah-langkah berikut:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --description="Service account for using Assured OSS"
      --display-name="Assured OSS service account"
    

    Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan (misalnya, assuredoss).

  7. Konfigurasi akun layanan untuk Assured OSS:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/assuredoss.user
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_NAME: nama akun layanan (misalnya, assuredoss).
    • PROJECT_ID: ID project.
  8. Siapkan layanan proxy Assured OSS di instance Artifact Registry dengan membuat repositori Assured OSS. Anda harus membuat repositori untuk semua bahasa. Layanan proxy Assured OSS yang menyediakan repositori hanya mendukung region AS.

    alias gcurlj='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-java   -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-javascript   -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-python   -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}'
    

    Ganti PROJECT_ID dengan ID project yang Anda pilih saat menyiapkan Assured OSS.

    Repositori ini dapat secara otomatis mengambil paket dari portofolio yang diseleksi. Jika paket tidak tersedia sebagai bagian dari portofolio yang diseleksi, repositori akan mengalihkan permintaan ke repositori kanonis.

  9. Buat kunci akun layanan untuk setiap akun layanan Assured OSS dan download kunci tersebut dalam format JSON.

  10. Di command line, jalankan perintah berikut pada file kunci yang didownload untuk mendapatkan string berenkode base64:

    base64 KEY_FILENAME.json
    

    Ganti KEY_FILENAME.json dengan nama kunci akun layanan yang telah Anda download.

    Anda memerlukan string berenkode base64 saat menyiapkan repositori jarak jauh untuk Assured OSS.

  11. Untuk mendownload paket, gunakan endpoint yang disediakan oleh Assured OSS untuk setiap bahasa. Perhatikan endpoint ini:

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    Ganti PROJECT_ID dengan ID project yang Anda pilih saat menyiapkan Assured OSS.

  12. Konfigurasikan Assured OSS untuk mendownload paket dengan pengelola repositori artefak organisasi Anda seperti JFrog Artifactory atau Sonatype Nexus.

  13. Secara opsional, lihat paket Java, Python, dan JavaScript yang tersedia:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login --cred-file=KEY_FILENAME.json
    

    Ganti KEY_FILENAME.json dengan nama kunci akun layanan yang telah Anda download.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
    

    Ganti KEY_FILENAME.json dengan nama kunci akun layanan yang telah Anda download.

    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-javascript/packages"
    

    Ganti PROJECT_ID dengan ID project yang Anda pilih saat menyiapkan Assured OSS.

Langkah selanjutnya