Wie bei allen Google Cloud-Produkten schützt Identity and Access Management Cloud Deploy durch die Steuerung der authentifizierten Nutzer und Dienstkonten, die bestimmte Aktionen ausführen können.
In diesem Dokument werden einige Features von IAM beschrieben. Außerdem finden Sie hier eine Anleitung zum Schutz Ihrer Anwendungsbereitstellungen, die mit Cloud Deploy verwaltet werden. Hier sind einige der spezifischen Möglichkeiten, den Zugriff auf Aktionen und Ressourcen in Cloud Deploy einzuschränken:
Berechtigungen zum Hochstufen eines Releases auf ein bestimmtes Ziel erteilen
Berechtigungen zum Genehmigen von Roll-outs für ein bestimmtes Ziel erteilen
Berechtigungen zum Hochstufen eines Release in einem bestimmten Zeitraum erteilen
Berechtigungen zum Genehmigen von Roll-outs in einem bestimmten Zeitraum erteilen
Hinweis
Sie sollten die grundlegenden Konzepte von IAM verstehen.
Weitere Informationen zu Cloud Deploy-Rollen und -Berechtigungen
Informationen zu erweiterten IAM-Features
Zusätzlich zu Rollen und Berechtigungen verwendet Cloud Deploy die folgenden IAM-Features, um diese Kontrollen bereitzustellen:
Informationen zu IAM-Richtlinien
Eine IAM-Richtlinie ist eine Sammlung von Bindungen und Metadaten. Die Rollenbindung weist einem oder mehreren Hauptkonten (Nutzer, Gruppen oder Dienstkonten) eine einzelne Rolle sowie alle kontextspezifischen Bedingungen zu, die steuern, ob die Bindung effektiv wird.
Weitere Informationen zu IAM-Richtlinien finden Sie unter Informationen zu Richtlinien.
Informationen zu IAM-Bedingungen
Mit IAM-Bedingungen können Sie den Zugriff auf Cloud Deploy-Ressourcen und -Aktionen basierend auf den zur Laufzeit berechneten Bedingungen steuern. Beispiel: Sie können eine Werbeaktion auf ein bestimmtes Ziel beschränken, sodass sie nur während eines bestimmten Zeitfensters zulässig ist.
Informationen zu API-Attributen
Wenn Sie IAM-Bedingungen erstellen, können Sie auf API-Attribute verweisen, um Laufzeitinformationen zu einer Anfrage zu erhalten. Sie können beispielsweise ein API-Attribut verwenden, um den Namen der Ressource abzurufen, für die die Anfrage bestimmt ist. Anschließend können Sie sie mit der Ressource oder den Ressourcen vergleichen, auf die das Hauptkonto Zugriff hat.
Detaillierten Zugriff über erweiterte IAM-Features gewähren
Mit diesen erweiterten IAM-Features können Sie unter bestimmten Bedingungen den Zugriff auf bestimmte Ressourcen und auf Ressourcentypen steuern.
Mit den Verfahren in diesem Abschnitt wird Zugriff auf bestimmte Ressourcen (Ziele, Lieferpipelines) gewährt. Sie können auch den Zugriff auf Projektebene gewähren. Dieser umfasst alle Lieferpipelines oder alle Ziele im jeweiligen Projekt. Eine IAM-Richtlinie für ein Projekt legen Sie mit dem gcloud projects set-iam-policy
-Befehl fest:
gcloud projects set-iam-policy PROJECT_ID POLICY_FILE
Zugriff auf eine bestimmte Lieferpipeline gewähren
Sie können Berechtigungen für ein Hauptkonto erteilen, um Lieferpipelines zu erstellen, zu ändern oder zu löschen. Dazu müssen Sie nur eine entsprechende Rolle zuweisen. Manchmal möchten Sie einem Hauptkonto einen solchen Zugriff für eine oder mehrere bestimmte Pipelines gewähren.
Verwenden Sie dazu Rollenbindungen, um die roles/clouddeploy.developer
-Rolle an dieses Hauptkonto zu binden. Geben Sie dann beim Anwenden der Richtlinie (mit setIamPolicy
) an, welcher Lieferpipeline der Zugriff gewährt werden soll.
So gewähren Sie Zugriff auf eine bestimmte Lieferpipeline:
Erstellen Sie eine Richtliniendatei mit der folgenden Bindung:
bindings: - role: roles/clouddeploy.developer members: - user:fatima@example.com
Im Beispiel oben wird einem Nutzer die Rolle zugewiesen. Sie können die Rolle aber auch einer Gruppe oder einem Dienstkonto zuweisen.
Rufen Sie folgenden Befehl auf, um die Richtliniendatei auf eine bestimmte Lieferpipeline anzuwenden:
gcloud deploy delivery-pipelines set-iam-policy --delivery-pipeline=PIPELINE_NAME --region=REGION POLICY_FILE
Zugriff zum Konfigurieren eines bestimmten Ziels gewähren
Wenn Sie einem Hauptkonto Zugriff auf ein bestimmtes Ziel gewähren möchten, können Sie Rollenbindungen verwenden. Binden Sie dazu die Rolle roles/clouddeploy.operator
mit diesem Hauptkonto. Wenn Sie die Richtlinie (mit setIamPolicy
) anwenden, geben Sie an, für welches Ziel der Zugriff gewährt wird.
Der Zugriff auf ein bestimmtes Ziel ermöglicht dem Hauptkonto, dieses Ziel zu aktualisieren und zu löschen.
Erstellen Sie eine Richtliniendatei mit der folgenden Bindung:
bindings: - role: roles/clouddeploy.operator members: - group:cd_operators@example.com
Im Beispiel oben wird die Rolle einer Gruppe gewährt, Sie können sie aber auch einem Nutzer oder einem Dienstkonto zuweisen.
Rufen Sie folgenden Befehl auf, um die Richtliniendatei auf ein bestimmtes Ziel anzuwenden:
gcloud deploy targets set-iam-policy TARGET --region=REGION POLICY_FILE
Berechtigungen zum Hochstufen eines Releases auf ein bestimmtes Ziel erteilen
Bei diesem Verfahren wird davon ausgegangen, dass bereits eine Richtlinie vorhanden ist, die die Rolle an das Hauptkonto bindet. Hier fügen wir eine Bedingung hinzu, die das Ziel angibt:
Erstellen Sie eine Richtliniendatei mit folgender Bindung:
bindings: - role: roles/clouddeploy.operator members: - serviceAccount:prod_operator@project-12345.iam.gserviceaccount.com condition: expression: api.getAttribute("clouddeploy.googleapis.com/rolloutTarget", "") == "prod" title: Deploy to prod
In dieser Rollenbindung nimmt
condition
ein Schlüssel/Wert-Paar auf, wobei der Schlüsselexpression
und der Wert ein CEL-Ausdruck ist. Dieser Ausdruck verweist auf eine Reihe kontextbezogener Attribute zur Anfrage und wird als boolescher Wert ausgewertet.In diesem Fall wird der Ausdruck ausgewertet, sobald das Hauptkonto versucht, die Version hochzustufen, um zu bestätigen, dass das Hochstufungsziel mit dem Ziel im Ausdruck übereinstimmt.
Der Ausdruck verwendet das API-Attribut
clouddeploy.com/rolloutTarget
. Dies ist das Ziel, zu dem das Hauptkonto hochstufen möchte. Der Ausdruck vergleicht es mit dem Ziel, für das das Hauptkonto Hochstufungszugriff erhalten hat.Legen Sie die Bindung für eine bestimmte Lieferpipeline fest:
gcloud deploy delivery-pipelines set-iam-policy PIPELINE_NAME --region=REGION POLICY_FILE
Wenn Sie diese Bindung für alle Lieferpipelines festlegen möchten, legen Sie sie auf der Projektebene fest:
gcloud projects set-iam-policy PROJECT POLICY_FILE
Berechtigungen zum Genehmigen von Rollouts für ein bestimmtes Ziel erteilen
Die Bindung in diesem Abschnitt gewährt einem Hauptkonto die Berechtigung zum Genehmigen von Rollouts für eine Pipeline und enthält eine Bedingung, die die Berechtigung für das prod
-Ziel anwendet.
Erstellen Sie eine Richtliniendatei mit folgender Bindung:
bindings: - role: roles/clouddeploy.approver members: - serviceAccount:prod_operator@project-12345.iam.gserviceaccount.com condition: expression: api.getAttribute("clouddeploy.googleapis.com/rolloutTarget", "") == "prod" title: Deploy to prod
In dieser Rollenbindung nimmt
condition
ein Schlüssel/Wert-Paar auf, wobei der Schlüsselexpression
und der Wert ein CEL-Ausdruck ist. Der Ausdruck verweist auf eine Reihe kontextbezogener Attribute zur Anfrage und wird als boolescher Wert ausgewertet.In diesem Fall wird der Ausdruck ausgewertet, sobald das Hauptkonto versucht, den Rollout zu genehmigen, um zu bestätigen, dass das Ziel mit dem Ziel im Ausdruck übereinstimmt.
Der Ausdruck verwendet das API-Attribut
clouddeploy.com/rolloutTarget
, das das Ziel des Roll-outs ist, und vergleicht es mit dem Ziel, für das dem Hauptkonto Genehmigungszugriff gewährt wird. Das Attributclouddeploy.googleapis.com/rolloutTarget
ist das einzige API-Attribut, das Cloud Deploy unterstützt.Legen Sie die Bindung für eine bestimmte Lieferpipeline fest:
gcloud deploy delivery-pipelines set-iam-policy PIPELINE_NAME --region=REGION POLICY_FILE
Wenn Sie diese Bindung für alle Lieferpipelines festlegen möchten, legen Sie sie auf der Projektebene fest:
gcloud projects set-iam-policy PROJECT POLICY_FILE
Berechtigungen zum Hochstufen eines Releases während eines bestimmten Zeitfensters erteilen
Die Bindung in diesem Abschnitt gewährt einem Hauptkonto die Berechtigung zum Hochstufen von Releases für eine Pipeline und enthält eine Bedingung, die das Zeitfenster angibt, während dem die Bindung wirksam ist.
Erstellen Sie eine Richtliniendatei mit folgender Bindung:
bindings: - role: roles/clouddeploy.operator members: - serviceAccount:prod_operator@project-12345.iam.gserviceaccount.com condition: expression: request.time.getDayOfWeek("America/Los_Angeles") > 0 && request.time.getDayOfWeek("America/Los_Angeles") < 6 title: Promote during safe window
In dieser Rollenbindung nimmt
condition
ein Schlüssel/Wert-Paar auf, wobei der Schlüsselexpression
und der Wert ein CEL-Ausdruck ist. Der Ausdruck verweist auf eine Reihe kontextbezogener Attribute zur Anfrage und wird als boolescher Wert ausgewertet. Dieser Ausdruck prüft, ob die Anfrage von Montag bis Freitag stattfindet.In diesem Fall wird der Ausdruck ausgewertet, sobald das Hauptkonto versucht, den Release hochzustufen, um zu bestätigen, dass das Hochstufungsziel mit dem Ziel im Ausdruck übereinstimmt.
Legen Sie die Bindung für eine bestimmte Lieferpipeline fest:
gcloud deploy delivery-pipelines set-iam-policy PIPELINE_NAME --region=REGION POLICY_FILE
Wenn Sie diese Bindung für alle Lieferpipelines festlegen möchten, legen Sie sie auf der Projektebene fest:
gcloud projects set-iam-policy PROJECT POLICY_FILE
Berechtigungen zum Genehmigen von Rollouts während eines bestimmten Zeitfensters erteilen
Die Bindung in diesem Abschnitt gewährt einem Hauptkonto die Berechtigung zur Genehmigung von Rollouts und enthält eine Bedingung, die das Zeitfenster angibt, während dem die Bindung wirksam ist.
Erstellen Sie eine Richtliniendatei mit folgender Bindung:
bindings: - role: roles/clouddeploy.approver members: - serviceAccount:prod_operator@project-12345.iam.gserviceaccount.com condition: expression: request.time.getDayOfWeek("America/Los_Angeles") > 0 && request.time.getDayOfWeek("America/Los_Angeles") < 6 title: Approve during safe window
In dieser Rollenbindung nimmt
condition
ein Schlüssel/Wert-Paar, auf wobei der Schlüsselexpression
und der Wert ein CEL-Ausdruck ist, der auf eine Reihe kontextualer Attribute zur Anfrage verweist. Die Ausgabe ist ein boolescher Wert. Dieser Ausdruck prüft, ob die Anfrage von Montag bis Freitag stattfindet.In diesem Fall wird der Ausdruck ausgewertet, sobald das Hauptkonto versucht, den Rollout zu genehmigen, um zu bestätigen, dass das Rollout-Ziel mit dem Ziel im Ausdruck übereinstimmt.
Legen Sie die Bindung für eine bestimmte Lieferpipeline fest:
gcloud deploy delivery-pipelines set-iam-policy PIPELINE_NAME --region=REGION POLICY_FILE
Wenn Sie diese Bindung für alle Lieferpipelines festlegen möchten, legen Sie sie auf der Projektebene fest:
gcloud projects set-iam-policy PROJECT POLICY_FILE
Berechtigungen zum Wiederholen eines Jobs je nach Art des Jobs erteilen
Die Bindung in diesem Abschnitt gewährt einem Hauptkonto die Berechtigung, einen Cloud Deploy-Job basierend auf der Art des Jobs zu wiederholen
Erstellen Sie eine Richtliniendatei mit folgender Bindung:
bindings: - role: roles/clouddeploy.operator members: - serviceAccount:prod_operator@project-12345.iam.gserviceaccount.com condition: expression: api.getAttribute("clouddeploy.googleapis.com/jobType", "") == "deploy" title: Retry deploy job
In dieser Rollenbindung nimmt
condition
ein Schlüssel/Wert-Paar auf, wobei der Schlüsselexpression
und der Wert ein CEL-Ausdruck ist. Der Ausdruck verweist auf eine Reihe kontextbezogener Attribute zur Anfrage und wird als boolescher Wert ausgewertet.In diesem Fall wird der Ausdruck ausgewertet, wenn das Hauptkonto versucht, den Job zu wiederholen, um zu bestätigen, dass der Jobtyp mit dem Jobtyp im Ausdruck übereinstimmt.
Der Ausdruck verwendet das API-Attribut
clouddeploy.com/jobType
. Dieses kann entwederdeploy
oderverify
sein.Legen Sie die Bindung für eine bestimmte Lieferpipeline fest:
gcloud deploy delivery-pipelines set-iam-policy PIPELINE_NAME --region=REGION POLICY_FILE
Wenn Sie diese Bindung für alle Lieferpipelines festlegen möchten, legen Sie sie auf der Projektebene fest:
gcloud projects set-iam-policy PROJECT POLICY_FILE