Einbindung in Assured OSS für Codesicherheit

Mit Assured Open Source Software (Assured OSS) können Sie die Codesicherheit verbessern, indem Sie die OSS-Pakete verwenden, die Google für seine eigenen Entwickler-Workflows verwendet. Wenn Sie Assured OSS verwenden, können Ihre Entwickler das Sicherheits-Know-how und die Erfahrung von Google nutzen, um seine eigenen Open-Source-Abhängigkeiten zu schützen.

Wenn Sie Assured OSS in Security Command Center einbinden, können Sie Folgendes tun:

  • Sie können aus über 3.700 kuratierten und beliebtesten Java- und Python-Paketen wählen, darunter gängige Projekte für maschinelles Lernen und künstliche Intelligenz wie TensorFlow, Pandas und Scikit-learn.
  • Konfigurieren Sie einen sicheren Proxy, um alle Java-, Python- und JavaScript-Pakete mit Attestierungen von Assured OSS herunterzuladen. Dadurch wird Google zu einem bekannten und vertrauenswürdigen Anbieter.
  • Verwenden Sie die SBOMs und VEX in Assured OSS, die in branchenüblichen Formaten wie SPDX und CycloneDX bereitgestellt werden, um mehr über Ihre Zutaten zu erfahren.
  • Erhöhen Sie das Vertrauen in die Integrität der von Ihnen verwendeten Pakete durch die signierte, manipulationssichere Herkunft von Google.
  • Reduzieren Sie Sicherheitsrisiken, da Google aktiv neue Sicherheitslücken in ausgewählten Paketen scannt, findet und behebt.

Hinweise

Führen Sie diese Aufgaben aus, bevor Sie die restlichen Aufgaben auf dieser Seite ausführen.

Security Command Center Enterprise-Stufe aktivieren

Prüfen Sie, ob die Enterprise-Stufe von Security Command Center auf Organisationsebene aktiviert ist und ob Sie die ersten sechs Schritte im Einrichtungsleitfaden ausgeführt haben.

Berechtigungen auf Organisationsebene einrichten

Sie müssen Berechtigungen auf Organisationsebene und auf Projektebene einrichten.

  1. Prüfen Sie, ob Sie die folgenden Rollen für die Organisation haben: Security Center Admin, Organization Admin

    Auf Rollen prüfen

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen
    2. Wählen Sie die Organisation aus.
    3. Suchen Sie in der Spalte Hauptkonto die Zeile mit Ihrer E-Mail-Adresse.

      Ist Ihre E-Mail-Adresse nicht in dieser Spalte enthalten, haben Sie keine Rollen.

    4. Prüfen Sie in der Spalte Rolle der Zeile mit Ihrer E-Mail-Adresse, ob die Liste der Rollen die erforderlichen Rollen enthält.

    Rollen zuweisen

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen
    2. Wählen Sie die Organisation aus.
    3. Klicken Sie auf Zugriff erlauben.
    4. Geben Sie in das Feld Neue Hauptkonten Ihre E-Mail-Adresse ein.
    5. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
    6. Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
    7. Klicken Sie auf Speichern.

Berechtigungen auf Projektebene einrichten

  1. Prüfen Sie, ob Sie die folgenden Rollen für das Projekt haben: Service Usage Admin, Service Account Admin, Project IAM Admin

    Auf Rollen prüfen

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Suchen Sie in der Spalte Hauptkonto die Zeile mit Ihrer E-Mail-Adresse.

      Ist Ihre E-Mail-Adresse nicht in dieser Spalte enthalten, haben Sie keine Rollen.

    4. Prüfen Sie in der Spalte Rolle der Zeile mit Ihrer E-Mail-Adresse, ob die Liste der Rollen die erforderlichen Rollen enthält.

    Rollen zuweisen

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Klicken Sie auf Zugriff erlauben.
    4. Geben Sie in das Feld Neue Hauptkonten Ihre E-Mail-Adresse ein.
    5. Wählen Sie in der Liste Rolle auswählen eine Rolle aus.
    6. Wenn Sie weitere Rollen hinzufügen möchten, klicken Sie auf Weitere Rolle hinzufügen und fügen Sie weitere Rollen hinzu.
    7. Klicken Sie auf Speichern.

Google Cloud CLI einrichten

Sie können die gcloud CLI-Beispiele auf dieser Seite über eine der folgenden Entwicklungsumgebungen verwenden:

  • Cloud Shell: Aktivieren Sie Cloud Shell, um ein Onlineterminal mit der bereits eingerichteten gcloud CLI zu verwenden.

    Unten auf dieser Seite wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  • Lokale Shell: Zur Verwendung der gcloud CLI in einer lokalen Entwicklungsumgebung müssen Sie die gcloud CLI installieren und initialisieren.

Assured OSS einrichten

Console

  1. Rufen Sie in der Google Cloud Console die Seite Risikoübersicht von Security Command Center auf.

    Zur Risikoübersicht

  2. Prüfen Sie, ob Sie die Organisation sehen, für die Sie die Enterprise-Stufe von Security Command Center aktiviert haben.

  3. Klicken Sie auf Einrichtungsleitfaden ansehen.

  4. Klicken Sie auf Codesicherheit einrichten.

  5. Wählen Sie ein neues Dienstkonto oder die vorhandenen Dienstkonten aus, denen Sie die Assured Open Source Software-Berechtigungen hinzufügen möchten.

  6. Wählen Sie das Google Cloud-Projekt aus, in dem Sie die Assured OSS-Ressourcen suchen möchten.

  7. Klicken Sie auf Assured OSS einrichten.

    Der Einrichtungsvorgang führt automatisch folgende Schritte aus:

    • Wenn diese Option ausgewählt ist, wird das neue Dienstkonto assuredoss@PROJECT_ID.gservicesaccount.com erstellt.
    • Weist dem angegebenen Dienstkonto zur Verwendung mit Assured OSS die Rolle „Assured OSS User“ zu.
    • Weist dem angemeldeten Nutzerkonto die Rolle Assured OSS-Administrator zu, damit das Konto den Dienst konfigurieren kann.
    • Aktiviert die Assured Open Source Software API und die Artifact Registry API, falls sie noch nicht aktiviert ist.
    • Richtet den Assured OSS-Proxy-Dienst in einer Artifact Registry-Instanz im ausgewählten Projekt ein. Für jede Sprache (Java, Python und JavaScript) wird ein Repository bereitgestellt. Diese Repositories können automatisch Pakete aus dem kuratierten Portfolio abrufen. Wenn ein Paket nicht als Teil des ausgewählten Portfolios verfügbar ist, leiten die Repositories die Anfrage an die kanonischen Repositories weiter. Der Proxydienst unterstützt nur die Region "USA".
    • Gewährt Ihnen und dem Dienstkonto Berechtigungen für den Zugriff auf Paketmetadaten und Benachrichtigungen aus Projekten von Google.
  8. Erstellen Sie einen Dienstkontoschlüssel für jedes designierte Assured OSS-Dienstkonto und laden Sie den Schlüssel im JSON-Format herunter.

  9. Führen Sie in der Befehlszeile auf Ihrem lokalen Computer den folgenden Befehl für die heruntergeladene Schlüsseldatei aus, um den base64-codierten String abzurufen:

    base64 KEY_FILENAME.json
    

    Ersetzen Sie KEY_FILENAME.json durch den Namen des heruntergeladenen Dienstkontoschlüssels.

    Sie benötigen den base64-codierten String, wenn Sie ein Remote-Repository für Assured OSS einrichten.

  10. Verwenden Sie zum Herunterladen der Pakete die Endpunkte, die Assured OSS für jede Sprache bereitstellt. Notieren Sie sich diese Endpunkte zur späteren Verwendung.

    • 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

    Ersetzen Sie PROJECT_ID durch die ID des Projekts, das Sie beim Einrichten von Assured OSS ausgewählt haben.

  11. Klicken Sie auf Next (Weiter). Konfigurieren Sie Assured OSS mit dem Artefakt-Repository-Manager Ihrer Organisation wie JFrog Artifactory oder Sonatype Nexus.

gcloud

  1. Authentifizieren Sie sich bei Google Cloud mit einem Nutzerkonto, mit dem Sie Assured OSS aktivieren möchten:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login
    
  2. Suchen Sie nach dem Projekt, in dem Sie die Assured OSS-Ressourcen finden möchten:

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

    Ersetzen Sie PROJECT_NAME durch den Projektnamen.

  3. Legen Sie das Projekt fest, in dem Sie die Assured OSS-Ressourcen finden möchten:

    gcloud config set project PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch die Projekt-ID.

  4. Gewähren Sie dem Nutzerkonto Rollen zum Einrichten von 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
    

    Dabei ist email@domain.com die E-Mail-Adresse Ihres Nutzerkontos.

  5. Aktivieren Sie Assured OSS im Projekt. Wenn Sie Assured OSS aktivieren, wird auch die Artifact Registry API aktiviert.

    gcloud services enable assuredoss.googleapis.com
    
  6. Führen Sie die folgenden Schritte aus, um ein neues Dienstkonto für Assured OSS zu erstellen, anstatt vorhandene Dienstkonten zu verwenden:

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

    Ersetzen Sie SERVICE_ACCOUNT_NAME durch den Namen des Dienstkontos (z. B. assuredoss).

  7. Konfigurieren Sie die Dienstkonten für Assured OSS:

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

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_NAME: der Name des Dienstkontos (z. B. assuredoss).
    • PROJECT_ID: die Projekt-ID.
  8. Richten Sie den Assured OSS-Proxydienst in einer Artifact Registry-Instanz ein, indem Sie Assured OSS-Repositories erstellen. Sie müssen Repositories für alle Sprachen erstellen. Der Assured OSS-Proxydienst, der die Repositories bereitstellt, unterstützt nur die US-Region.

    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"}'
    

    Ersetzen Sie PROJECT_ID durch die ID des Projekts, das Sie beim Einrichten von Assured OSS ausgewählt haben.

    Diese Repositories können automatisch Pakete aus dem kuratierten Portfolio abrufen. Wenn ein Paket nicht als Teil des ausgewählten Portfolios verfügbar ist, leiten die Repositories die Anfrage an die kanonischen Repositories weiter.

  9. Erstellen Sie einen Dienstkontoschlüssel für jedes Assured OSS-Dienstkonto und laden Sie den Schlüssel im JSON-Format herunter.

  10. Führen Sie in der Befehlszeile den folgenden Befehl für die heruntergeladene Schlüsseldatei aus, um den base64-codierten String abzurufen:

    base64 KEY_FILENAME.json
    

    Ersetzen Sie KEY_FILENAME.json durch den Namen des heruntergeladenen Dienstkontoschlüssels.

    Sie benötigen den base64-codierten String, wenn Sie ein Remote-Repository für Assured OSS einrichten.

  11. Verwenden Sie zum Herunterladen der Pakete die von Assured OSS für jede Sprache bereitgestellten Endpunkte. Notieren Sie sich diese Endpunkte:

    • 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

    Ersetzen Sie PROJECT_ID durch die ID des Projekts, das Sie beim Einrichten von Assured OSS ausgewählt haben.

  12. Konfigurieren Sie Assured OSS, um Pakete mit dem Artefakt-Repository-Manager Ihrer Organisation wie JFrog Artifactory oder Sonatype Nexus herunterzuladen.

  13. Sehen Sie sich optional die verfügbaren Java-, Python- und JavaScript-Pakete an:

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

    Ersetzen Sie KEY_FILENAME.json durch den Namen des heruntergeladenen Dienstkontoschlüssels.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
    

    Ersetzen Sie KEY_FILENAME.json durch den Namen des heruntergeladenen Dienstkontoschlüssels.

    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"
    

    Ersetzen Sie PROJECT_ID durch die ID des Projekts, das Sie beim Einrichten von Assured OSS ausgewählt haben.

Nächste Schritte