Verbindung zu einem Bitbucket Cloud-Host herstellen

Auf dieser Seite wird erläutert, wie Sie eine Verbindung zu einem Bitbucket Cloud-Host mit Cloud Build herstellen.

Hinweise

  • Cloud Build, Secret Manager, and Compute Engine APIs aktivieren.

    Aktivieren Sie die APIs

  • Achten Sie darauf, dass sich der Quellcode in einem Bitbucket Cloud Repository befindet
  • Achten Sie darauf, dass das Cloud-Quell-Repository von Bitbucket entweder eine Dockerfile oder eine Cloud Build-Konfigurationsdatei enthält.
  • Installieren Sie die Google Cloud CLI, um gcloud-Befehle zu verwenden.

Erforderliche IAM-Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Cloud Build Connection Admin“ (cloudbuild.connectionAdmin) für das Nutzerkonto zu gewähren, um die für die Verbindung erforderlichen Berechtigungen zu erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Bitbucket Cloud-Zugriffstokens erstellen

Erstellen Sie die folgenden beiden Zugriffstokens in Bitbucket Cloud:

  • Admin-Zugriffstoken – zum Verbinden und Trennen von Repositories
  • Zugriffstoken mit Lesezugriff: Damit Cloud Build auf Ihren Quellcode zugreifen kann.

So erstellen Sie diese Tokens:

  1. Melden Sie sich bei Bitbucket Cloud an.

  2. Folgen Sie der Bitbucket Cloud-Anleitung, um Zugriffstokens zu erstellen, die mit Ihrem Repository, Projekt oder Arbeitsbereich verknüpft sind.

    Erteilen Sie die folgenden Berechtigungen:

    • Zugriffstoken mit Administratorberechtigungen:

      • Repositories: Lesen und Administrator
      • Pull-Anfragen: Lesen
      • Webhooks: Read (Lesen) und Write (Schreiben)
    • Zugriffstoken mit Leseberechtigungen:

      • Repositories: Lesen
  3. Kopieren Sie Ihre Tokens zur Verwendung in den folgenden Verfahren.

Verbindung zu einem Bitbucket Cloud-Host herstellen

Console

Verbinden Sie Cloud Build mit Ihrem Bitbucket Cloud-Host. Führen Sie dazu die folgenden Schritte aus:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

    Die Seite Repositories wird angezeigt.

  2. Wählen Sie in der Projektauswahl Ihr Google Cloud-Projekt aus.

  3. Wählen Sie oben auf der Seite den Tab 2. Generation aus.

  4. Klicken Sie auf Hostverbindung erstellen, um einen neuen Host mit Cloud Build zu verbinden.

  5. Wählen Sie Bitbucket als Quellanbieter aus.

  6. Geben Sie im Abschnitt Verbindung konfigurieren die folgenden Informationen ein:

    1. Region: Wählen Sie eine Region für Ihre Verbindung aus.

    2. Name: Geben Sie einen Namen für die Verbindung ein.

    3. Wählen Sie im Abschnitt Hostdetails Bitbucket Cloud als Hosttyp aus.

    4. Workspace (Arbeitsbereich): Geben Sie die Arbeitsbereich-ID für Ihr Bitbucket Cloud-Repository ein.

    5. Zugriffstoken: Geben Sie Ihr zuvor erstelltes Administratorzugriffstoken ein.

    6. Lesezugriffstoken: Geben Sie das zuvor erstellte Zugriffstoken ein.

  7. Klicken Sie auf Verbinden.

    Die neue Verbindung wird auf der Seite Repositories angezeigt.

gcloud

  1. Führen Sie die folgenden Schritte aus, um Ihre Anmeldedaten zu speichern:

    1. Speichern Sie Ihre Zugriffstokens in Secret Manager in Ihrem Google Cloud-Projekt. Dazu führen Sie die folgenden Befehle aus:

      echo -n ADMIN_TOKEN | gcloud secrets create ADMIN_SECRET_NAME --data-file=-
      
      echo -n READ_TOKEN | gcloud secrets create READ_SECRET_NAME --data-file=-
      

      Wobei:

      • ADMIN_TOKEN ist Ihr Administratorzugriffstoken.
      • ADMIN_SECRET_NAME ist der Name, den Sie Ihrem Administratorzugriffstoken-Secret in Secret Manager geben möchten.
      • READ_TOKEN ist Ihr Zugriffstoken mit Lesezugriff.
      • READ_SECRET_NAME ist der Name, den Sie Ihrem Lesezugriff-Token-Secret in Secret Manager geben möchten.
    2. Erstellen Sie ein Webhook-Secret in Secret Manager. Führen Sie dazu den folgenden Befehl aus, wobei WEBHOOK_SECRET_NAME der Name ist, den Sie dem Webhook-Secret geben möchten:

      echo -n ${ex.(random-uuid)} | gcloud secrets create WEBHOOK_SECRET_NAME --data-file=-
      
    3. Wenn sich Ihre Secrets nicht alle im selben Projekt befinden, gewähren Sie dem Cloud Build-Dienstkonto Zugriff, indem Sie folgenden Befehl ausführen:

      PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
      CLOUD_BUILD_SERVICE_ACCOUNT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
      gcloud secrets add-iam-policy-binding ADMIN_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      
      gcloud secrets add-iam-policy-binding READ_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      
      gcloud secrets add-iam-policy-binding WEBHOOK_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      

      Wobei:

      • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
      • ADMIN_SECRET_NAME ist der Name Ihres Administratortoken-Secrets.
      • READ_SECRET_NAME ist der Name Ihres Lesetoken-Secrets.
      • WEBHOOK_SECRET_NAME ist der Name Ihres Webhook-Secrets.
  2. Verbinden Sie Cloud Build über den folgenden Befehl mit Ihrem Bitbucket Cloud-Host:

    gcloud builds connections create bitbucket-cloud CONNECTION_NAME \
        --workspace=WORKSPACE_ID \
        --project=PROJECT_ID \
        --region=REGION \
        --authorizer-token-secret-version=projects/PROJECT_ID/secrets/ADMIN_SECRET_NAME/versions/latest \
        --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/latest \
        --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/1
    

    Wobei:

    • CONNECTION_NAME ist der Name, den Sie der Verbindung zu Ihrem Bitbucket Cloud-Host geben möchten.
    • WORKSPACE_ID ist die Arbeitsbereich-ID für Ihr Bitbucket Cloud-Repository.
    • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
    • REGION ist die Region für die Hostverbindung.
    • ADMIN_SECRET_NAME ist der Name Ihres Administratortoken-Secrets.
    • READ_SECRET_NAME ist der Name Ihres Zugriffstoken-Secrets mit Lesezugriff.
    • WEBHOOK_SECRET_NAME ist der Name Ihres Webhook-Secrets.

Nächste Schritte