Berintegrasi dengan Assured OSS untuk keamanan kode

Tingkat premium Assured Open Source Software (Assured OSS) memungkinkan Anda meningkatkan keamanan kode dengan menggunakan paket OSS yang digunakan Google untuk alur kerja developer-nya sendiri. Saat 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 ribuan paket Java dan Python yang diseleksi dan paling populer, termasuk project machine learning dan kecerdasan buatan umum seperti TensorFlow, Pandas, dan Scikit-learn.
  • Konfigurasikan proxy aman untuk mendownload semua paket Java, Python, dan JavaScript dengan pengesahan dari Assured OSS, sehingga Google menjadi pemasok yang dikenal dan tepercaya.
  • Gunakan SBOM dan VEX di Assured OSS yang disediakan dalam format standar industri seperti SPDX dan CycloneDX untuk mengetahui lebih lanjut tentang komponen Anda.
  • Tingkatkan kepercayaan terhadap integritas paket yang Anda gunakan melalui provenance yang ditandatangani dan jelas dari Google.
  • Mengurangi risiko keamanan karena Google secara aktif memindai, menemukan, dan memperbaiki kerentanan baru dalam paket pilihan.

Sebelum memulai

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

Mengaktifkan paket Security Command Center Enterprise

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

Menyiapkan izin di tingkat organisasi

Anda harus menyiapkan izin di tingkat organisasi dan tingkat project.

  1. Make sure that you have the following role or roles on the organization: Security Center Admin, Organization Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Buka IAM
    2. Pilih organisasi.
    3. Klik Berikan akses.
    4. Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.

    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 tingkat project

    1. Make sure that you have the following role or roles on the project: Service Usage Admin, Service Account Admin, Project IAM Admin

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        Buka IAM
      2. Pilih project.
      3. Klik Berikan akses.
      4. Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.

      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

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      Menyiapkan Assured OSS

      Konsol

      1. Di konsol Google Cloud, buka halaman Ringkasan Risiko Security Command Center.

        Buka Ringkasan Risiko

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

      3. Klik Lihat panduan penyiapan.

      4. Klik Siapkan keamanan kode.

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

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

      7. Klik Siapkan Assured OSS.

        Proses penyiapan akan otomatis menyelesaikan hal berikut:

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

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

        base64 KEY_FILENAME.json
        

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

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

      10. Untuk mendownload paket, gunakan endpoint yang menyediakan OSS Terjamin 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 Berikutnya. 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 OSS Terjamin:

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

        Ganti PROJECT_NAME dengan nama project.

      3. Tetapkan project tempat Anda ingin menempatkan resource OSS yang Dijamin:

        gcloud config set project PROJECT_ID
        

        Ganti PROJECT_ID dengan ID project.

      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. Aktifkan Assured OSS dalam project. Mengaktifkan Assured OSS juga akan mengaktifkan Artifact Registry API.

        gcloud services enable assuredoss.googleapis.com
        
      6. Untuk membuat akun layanan baru bagi Assured OSS, bukan 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. Konfigurasikan 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 OSS terjamin yang menyediakan repositori hanya mendukung wilayah 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 otomatis mengambil paket dari portofolio yang diseleksi. Jika paket tidak tersedia sebagai bagian dari portofolio pilihan, 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 yang dienkode base64:

        base64 KEY_FILENAME.json
        

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

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

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

        • 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. Atau, 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 Anda download.

        export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
        

        Ganti KEY_FILENAME.json dengan nama kunci akun layanan yang 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