Damit Nutzer benutzerdefinierte Images erstellen, löschen, verwenden oder freigeben können, müssen Sie ihnen die entsprechenden Cloud IAM-Rollen (Identitäts- und Zugriffsverwaltung) zuweisen. In diesem Dokument wird beschrieben, welche IAM-Berechtigungen zum Erstellen und Verwalten von benutzerdefinierten Images erforderlich sind und wie sie Nutzern bereitgestellt werden.
Allgemeine Informationen zum Gewähren des Zugriffs auf Compute Engine-Ressourcen finden Sie unter Zugriff auf Compute Engine-Ressourcen verwalten. Informationen zu IAM finden Sie in der IAM-Dokumentation.
Hinweise
- Lesen Sie die IAM-Dokumentation.
- Informieren Sie sich über Compute Engine-IAM-Rollen, insbesondere die Rolle "Compute-Image-Nutzer" (
roles/compute.imageUser
).
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin
) für das Projekt -
Compute-Administrator (
roles/compute.admin
) für das Projekt -
So gewähren Sie Nutzern oder Dienstkonten die Berechtigungen zum Erstellen und Freigeben benutzerdefinierter Bilder:
-
resourcemanager.projects.getIamPolicy
für das Projekt -
resourcemanager.projects.setIamPolicy
für das Projekt
-
-
So gewähren Sie Nutzern oder Dienstkonten die Berechtigungen zum Löschen benutzerdefinierter Bilder:
-
resourcemanager.projects.getIamPolicy
für das Projekt -
resourcemanager.projects.setIamPolicy
für das Projekt -
compute.images.getIamPolicy
auf dem Bild -
compute.images.setIamPolicy
für das Bild
-
-
So widerrufen Sie den Zugriff von Nutzern oder Dienstkonten auf benutzerdefinierte Images:
-
resourcemanager.projects.getIamPolicy
für das Projekt -
resourcemanager.projects.setIamPolicy
für das Projekt
-
-
So erstellen Sie eine VM mit einem freigegebenen Image:
compute.instances.create
für das Projekt- Zur Erstellung der VM mit einem benutzerdefinierten Image:
compute.images.useReadOnly
für das Image - Zur Erstellung der VM mithilfe eines Snapshots:
compute.snapshots.useReadOnly
für den Snapshot - Zur Erstellung der VM mithilfe einer Instanzvorlage:
compute.instanceTemplates.useReadOnly
für die Instanzvorlage - Um der VM ein Legacy-Netzwerk zuzuweisen:
compute.networks.use
für das Projekt - Zum Festlegen einer statische IP-Adresse für die VM:
compute.addresses.use
für das Projekt - Zur Zuweisung einer externen IP-Adresse zur VM bei Verwendung eines Legacy-Netzwerks:
compute.networks.useExternalIp
für das Projekt - Um ein Subnetz für die VM anzugeben:
compute.subnetworks.use
für das Projekt oder für das ausgewählte Subnetz - Um der VM eine externe IP-Adresse zuzuweisen, wenn Sie ein VPC-Netzwerk verwenden:
compute.subnetworks.useExternalIp
für das Projekt oder für das ausgewählte Subnetz - Um die Metadaten der VM-Instanz für die VM festzulegen:
compute.instances.setMetadata
für das Projekt - Um Tags für die VM festzulegen:
compute.instances.setTags
für die VM - Um Labels für die VM festzulegen:
compute.instances.setLabels
für die VM - Um ein Dienstkonto festzulegen, das die VM verwenden soll:
compute.instances.setServiceAccount
für die VM - Um ein neues Laufwerk für die VM zu erstellen:
compute.disks.create
für das Projekt - Um ein vorhandenes Laufwerk im Lese- oder Lese‑/Schreibmodus anzuhängen:
compute.disks.use
für das Laufwerk - Um ein vorhandenes Laufwerk im Lesemodus anzuhängen:
compute.disks.useReadOnly
für das Laufwerk
compute.images.create
, um neue Images zu erstellencompute.images.list
, um Images im Projekt aufzulistencompute.disks.use
, wenn das Image von einem Laufwerk erstellt wirdcompute.disks.list
, wenn Nutzer alle Laufwerke in einem Projekt auflisten müssenRufen Sie in der Google Cloud Console die Seite IAM für das Projekt oder die Organisation auf.
Wenn Sie ein neues Mitglied hinzufügen möchten, klicken Sie auf
Zugriff gewähren.Geben Sie die E-Mail-Adresse der Person oder Identität, der Sie Zugriff gewähren möchten, im Feld Neue Hauptkonten ein.
Beispiel:
- E-Mail-Adresse für Google-Konto:
test-user@gmail.com
- Google-Gruppe:
admins@googlegroups.com
- Dienstkonto:
server@example.gserviceaccount.com
- Google Workspace-Domain:
example.com
- E-Mail-Adresse für Google-Konto:
Wählen Sie in der Liste Rolle auswählen die Option Compute Engine > Compute Storage-Administrator oder eine benutzerdefinierte Rolle aus, sofern Sie eine erstellt haben.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Speichern Sie die Änderungen.
ORGANIZATION_ID
oderPROJECT_ID
: die Organisations-ID oder die Projekt-ID, z. B.my-organization-1
odermy-project-1
.MEMBER
: eine gültige Identität, der Sie die Rolle zuweisen möchtenBeispiel:
- E-Mail-Adresse für Google-Konto:
user:user@gmail.com
- Google-Gruppe:
group:admins@googlegroups.com
- Dienstkonto:
serviceAccount:server@example.gserviceaccount.com
- Google Workspace-Domain:
domain:example.com
- E-Mail-Adresse für Google-Konto:
Lesen Sie die vorhandene Richtlinie mit der entsprechenden
getIamPolicy
-Methode der Ressource. Für Projekte verwenden Sie die Methodeprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID — z. B.my-project-1
.Für Organisationen verwenden Sie die Methode
organizations.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
Ersetzen Sie
ORGANIZATION_ID
durch die Organisations-ID — z. B.123456578920
.Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.
Wenn Sie Mitglieder und ihre zugehörigen Rollen hinzufügen oder entfernen möchten, bearbeiten Sie die Richtlinie in einem Texteditor. Verwenden Sie das folgende Format, um Mitglieder hinzuzufügen:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Fügen Sie der Richtlinie beispielsweise die folgende Bindung hinzu, um
group:admins@example.com
die Rolleroles/compute.storageAdmin
zuzuweisen:{ "members": [ "group:admins@example.com" ], "role":"roles/compute.storageAdmin" }
Verwenden Sie die Methode
setIamPolicy
, um die aktualisierte Richtlinie zu schreiben.Mit der Methode
project.setIamPolicy
können Sie beispielsweise eine Richtlinie auf Projektebene festlegen. Im Anfragetext geben Sie die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Ersetzen Sie dabei
PROJECT_ID
durch die Projekt-ID.- Ein bestimmtes Image löschen
- Images löschen, die einem bestimmten Projekt gehören
- Images für jedes Projekt innerhalb einer Organisation löschen
compute.images.delete
, um Images zu löschencompute.images.list
, wenn Nutzer Images im Projekt oder in der Organisation auflisten müssencompute.images.get
, um die Images abzurufenRufen Sie in der Google Cloud Console die Seite Images auf.
Wählen Sie die Images aus, für die Sie Berechtigungen erteilen möchten.
Klicken Sie zum Maximieren der Spalte für Berechtigungen auf Infofeld ansehen.
Klicken Sie zum Hinzufügen eines oder mehrerer Mitglieder auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse der Identität ein, für die Sie das Image freigeben möchten.
Beispiel:
- E-Mail-Adresse für Google-Konto:
test-user@gmail.com
- Google-Gruppe:
admins@googlegroups.com
- Dienstkonto:
server@example.gserviceaccount.com
- Google Workspace-Domain:
example.com
- E-Mail-Adresse für Google-Konto:
Halten Sie in der Liste Rolle den Mauszeiger auf Compute Engine und wählen Sie Storage-Administrator aus oder wählen Sie eine benutzerdefinierte Rolle aus der Liste Benutzerdefiniert aus.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Speichern Sie die Änderungen.
Rufen Sie die Seite IAM für das Projekt oder die Organisation auf.
Klicken Sie auf
Zugriff erlauben.Geben Sie die E-Mail-Adresse der Person oder Identität, der Sie Zugriff gewähren möchten, im Feld Neue Hauptkonten ein. Beispiel:
- E-Mail-Adresse für Google-Konto:
test-user@gmail.com
- Google-Gruppe:
admins@googlegroups.com
- Dienstkonto:
server@example.gserviceaccount.com
- Google Workspace-Domain:
example.com
- E-Mail-Adresse für Google-Konto:
Halten Sie in der Liste Rolle den Mauszeiger auf Compute Engine und wählen Sie Storage-Administrator aus oder wählen Sie eine benutzerdefinierte Rolle aus der Liste Benutzerdefiniert aus.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Speichern Sie die Änderungen.
ORGANIZATION_ID
oderPROJECT_ID
oderIMAGE_NAME
: die 12-stellige numerische Organisations-ID, die Projekt-ID oder der Image-Name, z. B.123456578920
,my-project-1
odermy-custom-image
MEMBER
: eine gültige Identität, der Sie die Rolle zuweisen möchtenBeispiel:
- E-Mail-Adresse für Google-Konto:
user:user@gmail.com
- Google-Gruppe:
group:admins@googlegroups.com
- Dienstkonto:
serviceAccount:server@example.gserviceaccount.com
- Google Workspace-Domain:
domain:example.com
- E-Mail-Adresse für Google-Konto:
ROLE
: die Rolle, die dieser Identität zugewiesen werden soll, z. B. die Rolleroles/compute.storageAdmin
, oder eine benutzerdefinierte Rolle wieroles/customImageDeletionRole
Lesen Sie die vorhandene Richtlinie mit der entsprechenden
getIamPolicy
-Methode der Ressource. Für Projekte verwenden Sie die Methodeprojects.getIamPolicy
:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID.Für Organisationen verwenden Sie die Methode
organizations.getIamPolicy
:POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
Ersetzen Sie
ORGANIZATION_ID
durch die 12-stellige numerische Organisations-ID.Für ein bestimmtes Image verwenden Sie die Methode
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-IDIMAGE_NAME
: der Name des Image
Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.
Wenn Sie Mitglieder und die zugehörigen Rollen hinzufügen oder entfernen möchten, können Sie die Richtlinie mit einem Texteditor bearbeiten. Verwenden Sie das folgende Format, um Mitglieder hinzuzufügen:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Fügen Sie der Richtlinie beispielsweise die folgende Bindung hinzu, um
user:test-email@example.com
die Rolleroles/compute.storageAdmin
zuzuweisen:{ "members": [ "user:test-email@example.com" ], "role":"roles/compute.storageAdmin" }
Verwenden Sie die Methode
setIamPolicy
, um die aktualisierte Richtlinie zu schreiben.Mit der Methode
project.setIamPolicy
können Sie beispielsweise eine Richtlinie auf Projektebene festlegen. Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID.- Compute Image-Nutzer (
roles/compute.imageUser
): Berechtigung zum Auflisten, Lesen und Verwenden von Images in Ihren Anfragen ohne weitere Berechtigungen für das Image. - Compute Storage-Administrator (
roles/compute.storageAdmin
): Berechtigungen zum Erstellen, Ändern und Löschen von Laufwerken, Images und Snapshots Rufen Sie in der Google Cloud Console die Seite Images auf.
Wählen Sie das Image aus, das Sie für andere Nutzer freigeben möchten.
Klicken Sie zum Maximieren der Spalte für Berechtigungen auf Infofeld ansehen.
Klicken Sie zum Hinzufügen eines oder mehrerer Mitglieder auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse der Identität ein, für die Sie das Image freigeben möchten.
Beispiel:
- E-Mail-Adresse für Google-Konto:
test-user@gmail.com
- Google-Gruppe:
admins@googlegroups.com
- Dienstkonto:
server@example.gserviceaccount.com
- Google Workspace-Domain:
example.com
- E-Mail-Adresse für Google-Konto:
Halten Sie in der Liste Rolle den Mauszeiger auf Compute Engine und wählen Sie Image-Nutzer oder Storage-Administrator aus. Sie können auch eine benutzerdefinierte Rolle auswählen.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Speichern Sie die Änderungen.
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf
Zugriff erlauben.Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse der Identität ein, für die Sie das Image freigeben möchten. Beispiel:
- E-Mail-Adresse für Google-Konto:
test-user@gmail.com
- Google-Gruppe:
admins@googlegroups.com
- Dienstkonto:
server@example.gserviceaccount.com
- Google Workspace-Domain:
example.com
- E-Mail-Adresse für Google-Konto:
Halten Sie in der Liste Rolle den Mauszeiger auf Projekt und wählen Sie Betrachter aus.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Speichern Sie die Änderungen.
IMAGE_NAME
: der Name des Image, z. B.custom-centos-8
MEMBER
: eine gültige Identität, der Sie die Rolle zuweisen möchtenBeispiel:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: die Rolle, der diese Identität zugewiesen werden soll, z. B.roles/compute.imageUser
,roles/compute.storageAdmin
, oder eine benutzerdefinierte RolleLesen Sie die vorhandene Richtlinie mit der
getIamPolicy
-Methode der Ressource. Um beispielsweise die Richtlinie für ein bestimmtes Image abzurufen, verwenden Sie die Methodeimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Projekts, zu dem dieses Image gehörtIMAGE_NAME
: der Name des Image
Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.
Wenn Sie Mitglieder und ihre zugehörigen Rollen hinzufügen oder entfernen möchten, bearbeiten Sie die Richtlinie in einem Texteditor. Verwenden Sie das folgende Format, um Mitglieder hinzuzufügen:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Wenn Sie beispielsweise
test-email@example.com
die Rolleroles/compute.imageUser
zuweisen möchten, fügen Sie der Richtlinie die folgende Bindung hinzu:{ "members": [ "user:test-email@example.com" ], "role":"roles/compute.imageUser" }
Verwenden Sie die Methode
setIamPolicy
, um die aktualisierte Richtlinie zu schreiben. Wenn Sie beispielsweise die Richtlinie für ein bestimmtes Image festlegen möchten, verwenden Sie die Methodeproject.setIamPolicy
. Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Projekts, zu dem dieses Image gehörtIMAGE_NAME
: der Name des Image
Rufen Sie in der Google Cloud Console die Seite Images auf.
Wählen Sie das Image aus, das Sie für andere Nutzer freigeben möchten.
Klicken Sie zum Maximieren der Spalte für Berechtigungen auf Infofeld ansehen.
Klicken Sie zum Hinzufügen eines oder mehrerer Mitglieder auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse der Gruppe ein, für die Sie das Image freigeben möchten. Beispiel:
admins@example.com
.Halten Sie in der Liste Rolle den Mauszeiger auf Compute Engine und wählen Sie Compute-Image-Nutzer aus.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Speichern Sie die Änderungen.
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf
Zugriff erlauben.Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse der Identität ein, für die Sie das Image freigeben möchten. Beispiel:
admins@example.com
.Halten Sie in der Liste Rolle den Mauszeiger auf Projekt und wählen Sie Betrachter aus.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Speichern Sie die Änderungen.
IMAGE_NAME
: der Name des Image, z. B.custom-centos-8
MEMBER
: eine gültige Identität, der Sie die Rolle zuweisen möchten, z. B.group:admins@example.com
Lesen Sie die vorhandene Richtlinie mit der
getIamPolicy
-Methode der Ressource. Um beispielsweise die Richtlinie für ein bestimmtes Image abzurufen, verwenden Sie die Methodeimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Projekts, zu dem dieses Image gehörtIMAGE_NAME
: der Name des Image
Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.
Wenn Sie Mitglieder und die zugehörigen Rollen hinzufügen oder entfernen möchten, können Sie die Richtlinie mit einem Texteditor bearbeiten. Verwenden Sie das folgende Format, um Mitglieder hinzuzufügen:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Fügen Sie der Richtlinie beispielsweise die folgende Bindung hinzu, um
test-user@example.com
die Rolleroles/compute.imageUser
zu gewähren:{ "members": [ "user:test-user@example.com" ], "role":"roles/compute.imageUser" }
Verwenden Sie die Methode
setIamPolicy
, um die aktualisierte Richtlinie zu schreiben. Wenn Sie beispielsweise eine Richtlinie für ein bestimmtes Image festlegen möchten, verwenden Sie die Methodeimages.setIamPolicy
. Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Projekts, zu dem dieses Image gehörtIMAGE_NAME
: der Name des Image
Optional können Sie Nutzern die IAM-Rolle "Betrachter" (
roles/viewer
) für das Image-Projekt zuweisen, damit sie diese freigegebenen Images in ihrenimages.list
-Anfragen sehen können. Verwenden Sie dazu die Methodeprojects.setIamPolicy
. Wenn Sie nicht möchten, dass Ihre Nutzer die Liste der freigegebenen Images sehen, können Sie diesen Schritt überspringen.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Lesen Sie die vorhandene Richtlinie mit der Methode
getIamPolicy
. Um beispielsweise die Richtlinie für ein bestimmtes Image abzurufen, verwenden Sie die Methodeimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Projekts, zu dem dieses Image gehörtIMAGE_NAME
: der Name des Image
Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.
Wenn Sie Mitglieder und ihre zugehörigen Rollen hinzufügen oder entfernen möchten, bearbeiten Sie die Richtlinie in einem Texteditor:
{ "members": [ "allAuthenticatedUsers" ], "role":"roles/compute.imageUser" }
Verwenden Sie die Methode
setIamPolicy
, um die aktualisierte Richtlinie zu schreiben. Wenn Sie beispielsweise eine Richtlinie für ein bestimmtes Image festlegen möchten, verwenden Sie die Methodeimages.setIamPolicy
. Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Projekts, zu dem dieses Image gehörtIMAGE_NAME
: der Name des Image
- Projekt A möchte eine MIG mit Images erstellen, die Projekt B gehören.
- Projekt B gewährt dem Dienstkonto von Projekt A die Rolle "Compute-Image-Nutzer".
- Projekt A kann jetzt Images aus Projekt B verwenden, um MIGs zu erstellen.
Rufen Sie in der Google Cloud Console die Seite IAM des Projekts auf, auf dessen Dienstkonto Sie Zugriff gewähren möchten.
Wählen Sie bei Aufforderung Ihr Projekt aus der Liste aus.
Suchen Sie nach dem Google APIs-Dienst-Agent, dessen E-Mail-Adresse folgendes Format hat:
PROJECT_NUMBER@cloudservices.gserviceaccount.com
- Einer MIG Zugriff auf alle Images in einem Projekt gewähren
- Einer MIG Zugriff auf bestimmte Images in einem Projekt gewähren
Rufen Sie in der Google Cloud Console die Seite IAM des Image-Projekts auf.
Wenn Sie ein neues Mitglied hinzufügen möchten, klicken Sie auf
Zugriff gewähren.Fügen Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Dienstkontos hinzu.
Halten Sie in der Liste Rolle den Mauszeiger auf Compute und wählen Sie Compute-Image-Nutzer aus.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Klicken Sie auf Speichern.
Wechseln Sie zum Projekt des Dienstkontos.
PROJECT_ID
: die ID des Projekts mit den freizugebenden ImagesSERVICE_ACCOUNT_EMAIL
: die E-Mail-Adresse des DienstkontosRufen Sie die IAM-Richtlinie des Image-Projekts mit der Methode
projects.getIamPolicy
ab:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Ersetzen Sie
PROJECT_ID
durch die Produkt-ID des Image-Projekts.Bearbeiten Sie die Richtlinie mit einem Texteditor, um dem Dienstkonto die Rolle
roles/compute.imageUser
zuzuweisen:{ "bindings": [ { "role": "roles/compute.imageUser", "members": [ "serviceAccount:SERVICE_ACCOUNT_EMAIL" ] } ] }
Ersetzen Sie
SERVICE_ACCOUNT_EMAIL
durch die E-Mail des Dienstkontos.Verwenden Sie die
projects.setIamPolicy
, um die aktualisierte Richtlinie zu schreiben. Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Ersetzen Sie
PROJECT_ID
durch die Produkt-ID des Image-Projekts.Sie können jetzt eine Instanzvorlage anhand eines Image aus dem Image-Projekt und eine MIG anhand der Instanzvorlage erstellen.
Rufen Sie in der Google Cloud Console die Seite Images des Image-Projekts auf.
Klicken Sie die Kästchen neben den Images an, die Sie freigeben möchten.
Klicken Sie zum Maximieren der Spalte für Berechtigungen auf Infofeld ansehen.
Klicken Sie im Bereich Berechtigungen auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adresse des Dienstkontos ein, für das Sie das Image freigeben möchten. Beispiel:
test123@example.domain.com
.Wählen Sie in der Liste Rolle die Option Compute und dann Compute Image-Nutzer aus.
Optional: Wenn Sie den Zugriff des Nutzers auf Google Cloud-Ressourcen genauer steuern möchten, fügen Sie eine bedingte Rollenbindung hinzu.
Klicken Sie auf Speichern.
Wechseln Sie zum Projekt des Dienstkontos.
IMAGE_NAME
: der Image-Name, den Sie freigeben möchtenSERVICE_ACCOUNT_EMAIL
: die E-Mail-Adresse des DienstkontosRufen Sie die IAM-Richtlinie eines Image mit der Methode
images.getIamPolicy
ab:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Image-Projekts.IMAGE_NAME
: der Name des Image, das Sie freigeben möchten.
Bearbeiten Sie die Richtlinie mit einem Texteditor, um dem Dienstkonto die Rolle
roles/compute.imageUser
zuzuweisen:{ "bindings": [ { "role": "roles/compute.imageUser", "members": [ "serviceAccount:SERVICE_ACCOUNT_EMAIL" ] } ] }
Ersetzen Sie
SERVICE_ACCOUNT_EMAIL
durch die E-Mail des Dienstkontos.Verwenden Sie die Methode
images.setIamPolicy
, um die aktualisierte Richtlinie zu schreiben. Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID des Image-Projekts.IMAGE_NAME
: der Name des Image, das Sie freigeben möchten.
Sie können jetzt eine Instanzvorlage anhand eines Image aus dem Image-Projekt und eine MIG anhand der Instanzvorlage erstellen.
Suchen Sie die Organisations-ID für Ihre Organisation mit dem Befehl
gcloud organization list
:gcloud organizations list
Rufen Sie die vorhandenen Richtlinieneinstellungen für Ihr Projekt mit dem Befehl
gcloud resource-manager org-policies describe
ab.gcloud resource-manager org-policies describe \ compute.storageResourceUseRestrictions \ --organization ORGANIZATION_ID > org-policy.yaml
Ersetzen Sie ORGANIZATION_ID durch die 12-stellige numerische Organisations-ID.
Öffnen Sie die Datei
org-policy.yaml
in einem Texteditor und ändern Sie die Einschränkungcompute.storageResourceUseRestrictions
. Fügen Sie die gewünschten Einschränkungen hinzu und entfernen Sie die nicht mehr benötigten Einschränkungen. Wenn Sie mit der Bearbeitung der Datei fertig sind, speichern Sie die Änderungen. Sie können in der Richtliniendatei z. B. die folgende Einschränkung angeben:constraint: compute.storageResourceUseRestrictions listPolicy: allowedValues: - under:organization/organization-id
Wenden Sie die Datei
org-policy.yaml
mit dem Befehlgcloud resource-manager org-policies set-policy
auf Ihre Organisation an:gcloud resource-manager org-policies set-policy \ --organization=ORGANIZATION_ID org-policy.yaml
Ersetzen Sie ORGANIZATION_ID durch die 12-stellige numerische Organisations-ID.
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
- Geben Sie einen Namen für Ihre VM an. Weitere Informationen finden Sie unter Konvention für Ressourcennamen.
- Ändern Sie optional die Zone für diese VM. Wenn Sie Beliebig auswählen, wählt Google automatisch eine Zone für Sie aus, basierend auf dem Maschinentyp und der Verfügbarkeit.
- Wählen Sie eine Maschinenkonfiguration für Ihre VM aus.
- Klicken Sie im Abschnitt Bootlaufwerk auf Ändern, um das Bootlaufwerk zu konfigurieren. Gehen Sie dann so vor:
- Wählen Sie den Tab Benutzerdefinierte Images aus.
- Klicken Sie zum Auswählen des Image-Projekts auf Projekt auswählen und gehen Sie dann so vor:
- Wählen Sie das Projekt aus, das das Image enthält.
- Klicken Sie auf Öffnen.
- Klicken Sie in der Liste Image auf das Image, das Sie importieren möchten.
- Wählen Sie den Typ und die Größe des Bootlaufwerks aus.
- Klicken Sie auf Auswählen, um die Bootlaufwerksoptionen zu bestätigen.
Wählen Sie im Abschnitt Firewall die Option HTTP-Traffic zulassen oder HTTPS-Traffic zulassen aus, um HTTP- oder HTTPS-Traffic zur VM zuzulassen.
In der Google Cloud Console wird der VM ein Netzwerk-Tag hinzugefügt und es werden entsprechende Firewallregeln für eingehenden Traffic erstellt, die den gesamten eingehenden Traffic über
tcp:80
(HTTP) odertcp:443
(HTTPS) zulassen. Das Netzwerk-Tag ordnet die Firewallregel der VM zu. Weitere Informationen finden Sie unter Übersicht über Firewallregeln in der Cloud Next Generation Firewall-Dokumentation.- Klicken Sie zum Starten und Erstellen einer VM auf Erstellen.
-
In the Google Cloud console, 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.
-
Sie erstellen eine VM mit dem
gcloud compute instances create command
und verwenden die Flags--image
und--image-project
, um den Image-Namen und das Projekt anzugeben, in dem sich das Image befindet:gcloud compute instances create VM_NAME \ --image=IMAGE \ --image-project=IMAGE_PROJECT
Ersetzen Sie dabei Folgendes:
VM_NAME
ist der Name der neuen VM.IMAGE
ist der Name des Images.IMAGE_PROJECT
ist das Projekt, zu dem das Image gehört.
Wenn der Befehl erfolgreich ausgeführt wurde, gibt
gcloud
die Attribute der neuen VM zurück:Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS example-instance us-central1-b e2-standard-2 10.240.0.4 104.198.53.60 RUNNING
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
- Klicken Sie auf Instanz erstellen.
- Geben Sie die gewünschten Parameter an.
- Klicken Sie oben oder unten auf der Seite auf Entsprechender Code und dann auf den Tab Terraform, um den Terraform-Code aufzurufen.
PROJECT_ID
ist die ID des Projekts, in dem die VM erstellt werden soll.ZONE
ist die Zone, in der die VM erstellt werden soll.MACHINE_TYPE_ZONE
ist die Zone mit dem Maschinentyp, der für die neue VM verwendet werden soll.MACHINE_TYPE
legt einen vordefinierten oder benutzerdefinierten Maschinentyp für die neue VM fest.VM_NAME
ist der Name der neuen VM.IMAGE_PROJECT
ist der Name des Projekts, das das freigegebene Image enthält.- Für
IMAGE
oderIMAGE_FAMILY
muss eine der folgenden Optionen angegeben werden:IMAGE
ist der Name des freigegebenen Images. Beispiel:"sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2"
.IMAGE_FAMILY
legt die benutzerdefinierte Image-Familie fest, wenn das freigegebene Image als Teil einer benutzerdefinierten Image-Familie erstellt wird.Dies erstellt die VM aus dem aktuellen, nicht verworfenen Betriebssystem-Image in Ihrer benutzerdefinierten Image-Familie. Wenn Sie beispielsweise
"sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family"
angeben, legt Compute Engine eine VM aus der neuesten Version des Betriebssystem-Images in der benutzerdefiniertenfinance-debian-family
-Image-Familie an.
NETWORK_NAME
: das VPC-Netzwerk, das Sie für die VM verwenden möchten. Sie könnendefault
angeben, um Ihr Standardnetzwerk zu verwenden.ENABLE_SECURE_BOOT
: (Optional) Wenn Sie ein Image ausgewählt haben, das Shielded VM-Features unterstützt, aktiviert Compute Engine standardmäßig das Virtual Trusted Platform Module (vTPM) und das Integritätsmonitoring. Compute Engine aktiviert nicht standardmäßig Secure Boot.Wenn Sie für
enableSecureBoot
den Werttrue
angeben, erstellt Compute Engine eine VM, bei der alle drei Shielded VM-Features aktiviert sind. Nachdem Compute Engine Ihre VM gestartet hat, müssen Sie die VM beenden, um Shielded VM-Optionen zu ändern.Rufen Sie in der Google Cloud Console die Seite Images des Image-Projekts auf.
Klicken Sie die Kästchen neben den Images an, die Sie aktualisieren möchten.
Klicken Sie zum Maximieren der Spalte für Berechtigungen auf Infofeld ansehen.
Erweitern Sie die Rolle, aus der Sie Nutzer entfernen möchten.
Klicken Sie auf
Löschen, um einen Nutzer aus dieser Rolle zu entfernen.IMAGE_NAME
: der Name des Image, z. B.my_image
MEMBER
: die Identität, die Sie entfernen möchtenMuss das Format
user|group|serviceAccount:email
oderdomain:domain
haben. Beispiel:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: die Rolle, aus der Sie die Identität entfernen möchten.Lesen Sie die vorhandene Richtlinie mit der Methode
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID, zu der dieses Image gehörtIMAGE_NAME
: der Name des Image
Compute Engine gibt in der Antwort die aktuelle Richtlinie zurück.
Bearbeiten Sie die Richtlinie mit einem Texteditor, um Mitglieder und die zugehörigen Rollen zu entfernen.
Verwenden Sie die Methode
images.setIamPolicy
, um die aktualisierte Richtlinie zu schreiben. Geben Sie im Anfragetext die aktualisierte IAM-Richtlinie aus dem vorherigen Schritt an.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/global/images/IMAGE_NAME:setIamPolicy
Dabei gilt:
PROJECT_ID
: die Projekt-ID, zu der dieses Image gehörtIMAGE_NAME
: der Name des Image
- Identitäts- und Zugriffsverwaltung (IAM)
- Liste der Compute Engine-IAM-Rollen abrufen
- Images
- VM mit einem freigegebenen Image erstellen
- Eigenständigen nichtflüchtigen Speicher mit Startfunktion erstellen
- Rolle mit den Bereitstellungen des Deployment Managers verwenden
- Grundsatz der geringsten Berechtigungen anwenden, indem Sie Zugriff auf bestimmte Compute Engine-Ressourcen gewähren anstatt auf ein ganzes Projekt
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten des Zugriffs auf benutzerdefinierte Bilder benötigen:
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwalten des Zugriffs auf benutzerdefinierte Bilder erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um den Zugriff auf benutzerdefinierte Images zu verwalten:
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Beschränkungen
Für Images können Sie dem speziellen Mitgliedstyp allUsers
keine Rollen zuweisen.
Berechtigung zum Erstellen benutzerdefinierter Images erteilen
Sie können Nutzern die Möglichkeit geben, benutzerdefinierte Images in Ihrer Organisation oder Ihrem Projekt zu erstellen.
Compute Engine bietet die vordefinierte Rolle "Compute Storage-Administrator" (roles/compute.storageAdmin
), die Sie Nutzern zuweisen können, damit diese speicherbezogene Ressourcen wie Images, Laufwerke und Snapshots erstellen, löschen und verwalten können. Wenn Sie eine Rolle benötigen, mit der Images nur erstellt werden können, müssen Sie eine benutzerdefinierte Rolle erstellen. Fügen Sie der benutzerdefinierten Rolle die folgenden Berechtigungen hinzu:
Wenn Sie einem Nutzer die Möglichkeit geben, benutzerdefinierte Images auf Organisationsebene zu erstellen, kann der Nutzer benutzerdefinierte Images für jedes Projekt innerhalb der Organisation erstellen.
Console
gcloud
Um die Rolle roles/compute.storageAdmin
auf Organisationsebene zuzuweisen, verwenden Sie den Befehl gcloud organizations add-iam-policy-binding
:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member='MEMBER' \ --role='roles/compute.storageAdmin'
Wenn Sie die Rolle roles/compute.storageAdmin
auf Projektebene zuweisen möchten, verwenden Sie den Befehl gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/compute.storageAdmin'
Dabei gilt:
REST
Berechtigungen zum Löschen benutzerdefinierter Images erteilen
Ihren Anforderungen entsprechend können Sie Nutzern folgende Berechtigungen erteilen:
Wenn Sie die Berechtigung auf Projektebene erteilen, können Nutzer alle Images löschen, die zu diesem Projekt gehören. Wenn Sie die Berechtigung auf Organisationsebene erteilen, kann der Nutzer alle Images löschen, die dieser Organisation gehören, unabhängig vom Projekt.
Compute Engine bietet die vordefinierte Rolle Compute Storage-Administrator (roles/compute.storageAdmin
), die Sie Nutzern zuweisen können, damit diese speicherbezogene Ressourcen wie Images, Laufwerke und Snapshots erstellen, löschen und verwalten können. Wenn Sie eine Rolle benötigen, mit der Images nur gelöscht werden können, müssen Sie eine benutzerdefinierte Rolle erstellen.
Fügen Sie der benutzerdefinierten Rolle die folgenden Berechtigungen hinzu:
Console
So gewähren Sie die Berechtigung zum Löschen bestimmter Images:
So gewähren Sie die Berechtigung zum Löschen von Images für ein Projekt oder eine Organisation:
gcloud
Um Berechtigungen zum Löschen von Images auf Organisationsebene zu erteilen, verwenden Sie den Befehl gcloud organizations add-iam-policy-binding
:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member='MEMBER' \ --role='ROLE'
Wenn Sie Berechtigungen zum Löschen von Images auf Projektebene erteilen möchten, verwenden Sie den Befehl gcloud
projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='ROLE'
Wenn Sie Berechtigungen zum Löschen eines bestimmten Image erteilen möchten, verwenden Sie den Befehl gcloud compute
images add-iam-policy-binding
:
gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Dabei gilt:
REST
Berechtigungen zum Freigeben benutzerdefinierter Images innerhalb einer Organisation erteilen
Wenn Ihr Projekt zu einer Organisation gehört, kann die Organisation mehrere andere Projekte mit unterschiedlichen Zugriffsebenen für andere Projekte haben. Wenn Sie benutzerdefinierte Images erstellen, können Sie diese Images für andere Nutzer aus anderen Projekten innerhalb der Organisation freigeben.
Compute Engine bietet die folgenden vordefinierten IAM-Rollen, die Sie für die Image-Verwaltung verwenden können:
Alternativ können Sie auch Ihre eigene benutzerdefinierte IAM-Rolle erstellen.
Als Best Practice empfehlen wir, dass Sie alle benutzerdefinierten Images in einem einzelnen Projekt speichern, das zum Hosten dieser Images dient. Hierdurch wird die Verwaltung dieser Images verbessert und es ermöglicht Ihnen, bestimmten Teams den Zugriff auf genau die Images zu gewähren, die sie benötigen. Sie können Teams auch Zugriff auf das gesamte Image-Projekt gewähren. Davon raten wir jedoch ab, da Teamzugriff auf das gesamte Image-Projekt gegen das Prinzip der geringsten Berechtigung verstößt.
Das folgende Beispiel zeigt, wie Sie eine Gruppe hinzufügen, sodass die Nutzer dieser Gruppe Zugriff auf das Image haben.
Console
Damit Nutzer freigegebene benutzerdefinierte Images über die Google Cloud Console starten können, müssen Sie ihnen die IAM-Rolle „Betrachter“ (roles/viewer
) für das Image-Projekt zuweisen. Durch Zuweisen dieser Rolle wird sichergestellt, dass die freigegebenen Images in der Image-Auswahlliste angezeigt werden.
gcloud
Verwenden Sie den Befehl gcloud compute images add-iam-policy-binding
, um die IAM-Richtlinie für ein bestimmtes Image zu aktualisieren:
gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Dabei gilt:
Optional können Sie Nutzern die IAM-Rolle "Betrachter" (roles/viewer
) für das Image-Projekt zuweisen, damit sie diese freigegebenen Images in ihren images.list
-Anfragen sehen können. Verwenden Sie dazu den Befehl gcloud projects add-iam-policy-binding
. Wenn Sie nicht möchten, dass Ihre Nutzer die Liste der freigegebenen Images sehen, können Sie diesen Schritt überspringen.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
REST
Optional können Sie Nutzern die IAM-Rolle "Betrachter" (roles/viewer
) für das Image-Projekt zuweisen, damit sie diese freigegebenen Images in ihren images.list
-Anfragen sehen können. Verwenden Sie dazu die Methode projects.setIamPolicy
.
Wenn Sie nicht möchten, dass Ihre Nutzer die Liste der freigegebenen Images sehen, können Sie diesen Schritt überspringen.
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Berechtigungen zum Freigeben benutzerdefinierter Images zwischen Organisationen erteilen
Einen Katalog mit benutzerdefinierten Images zu erstellen kann nützlich sein, wenn Sie Images für Partner, Nutzer oder Auftragnehmer außerhalb Ihrer Organisation freigeben möchten. Um Ihre Images für Nutzer außerhalb der Organisation freizugeben, fügen Sie sie als Image-Nutzer Ihrem Projekt hinzu:
Console
Damit Nutzer freigegebene benutzerdefinierte Images über die Google Cloud Console starten können, müssen Sie ihnen die IAM-Rolle „Betrachter“ (roles/viewer
) für das Image-Projekt zuweisen. Durch Zuweisen dieser Rolle wird sichergestellt, dass die freigegebenen Images in der Image-Auswahlliste angezeigt werden.
gcloud
Mit dem Befehl gcloud
compute images add-iam-policy-binding
können Sie Nutzern die Rolle roles/compute.imageUser
zuweisen:
gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='roles/compute.imageUser'
Dabei gilt:
Optional können Sie Nutzern die IAM-Rolle "Betrachter" (roles/viewer
) für das Image-Projekt zuweisen, damit sie diese freigegebenen Images in ihren images.list
-Anfragen sehen können. Verwenden Sie dazu den Befehl gcloud projects add-iam-policy-binding
. Wenn Sie nicht möchten, dass Ihre Nutzer die Liste der freigegebenen Images sehen, können Sie diesen Schritt überspringen.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
REST
Berechtigungen zum öffentlichen Teilen benutzerdefinierter Images erteilen
Sie können Ihre benutzerdefinierten Images für alle authentifizierten Compute Engine-Nutzer freigeben, unabhängig davon, ob sie Teil Ihrer Organisation oder Ihres Projekts sind.
Sie können nur Ressourcen wie beispielsweise Images für alle authentifizierten Nutzer freigeben. Projekte oder Organisationen können nicht für alle authentifizierten Nutzer freigegeben werden. Diese Einschränkung und die Ressourcenhierarchie verhindern, dass eine Organisation versehentlich ihr gesamtes Projekt mit allen authentifizierten Compute Engine-Nutzern teilt.
Das folgende Beispiel zeigt, wie allen authentifizierten Compute Engine-Nutzern die Rolle "Compute Image-Nutzer" (roles/compute.imageUser
) für ein benutzerdefiniertes Image gewährt wird.
gcloud
Verwenden Sie den Befehl gcloud compute images add-iam-policy-binding
, um Images zu veröffentlichen:
gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='allAuthenticatedUsers' \ --role='roles/compute.imageUser'
Ersetzen Sie IMAGE_NAME
durch den Namen der Ressource, z. B. my_image
.
REST
Einer verwalteten Instanzgruppe Zugriff auf Images gewähren
Mit Compute Engine können Sie eine Gruppe von VMs erstellen, entweder als verwaltete oder als nicht verwaltete Instanzgruppen. Wenn Sie eine verwaltete Instanzgruppe (Managed Instance Group, MIG) erstellen, verwendet Compute Engine das Google APIs-Dienstkonto zum Aufrufen der Compute Engine API für relevante Aktionen in Bezug auf die Gruppe. Dabei kann es sich z. B. um die Neuerstellung fehlerhafter Instanzen handeln oder um das Aktualisieren von VMs.
Wenn Sie eine MIG mit einem Image aus einem anderen Projekt erstellen möchten, weisen Sie dem API-Dienstkonto des Projekts, das die MIG erstellt, die Rolle "Compute Image-Nutzer" (roles/compute.imageUser
) zu. Beispiel:
Nachdem Sie die Rolle "Compute-Image-Nutzer" gewährt haben, können Sie über die Konsole oder die Image-URL auf das Image aus den anderen Projekten zugreifen, wenn Sie die Instanzvorlage für die verwaltete Gruppe erstellen.
E-Mail-Adresse des Dienstkontos abrufen
Nachdem Sie die E-Mail-Adresse des Dienstkontos abgerufen haben, können Sie einen der folgenden Abschnitte aufrufen:
Einer MIG Zugriff auf alle Images in einem Projekt gewähren
Nachdem Sie die E-Mail-Adresse eines Dienstkontos abgerufen haben, können Sie die Adresse zu einem anderen Projekt hinzufügen und die Rolle "Compute Image-Nutzer" (roles/compute.imageUser
) zuweisen.
Console
Sie können jetzt eine Instanzvorlage anhand eines Image aus dem Image-Projekt und eine MIG anhand der Instanzvorlage erstellen.
gcloud
Fügen Sie mit dem Befehl gcloud projects
add-iam-policy-binding
ein Dienstkonto aus einem Image-Projekt hinzu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' --role='roles/compute.imageUser'
Dabei gilt:
Sie können jetzt eine Instanzvorlage anhand eines Image aus dem Image-Projekt und eine MIG anhand der Instanzvorlage erstellen.
REST
Einer MIG Zugriff auf bestimmte Images in einem Projekt gewähren
Nachdem Sie die E-Mail-Adresse eines Dienstkontos abgerufen haben, können Sie die Adresse einem anderen Projekt hinzufügen und die Rolle "Compute-Image-Nutzer" (roles/compute.imageUser
) für bestimmte Images zuweisen.
Console
Sie können jetzt eine Instanzvorlage anhand eines Image aus dem Image-Projekt und eine MIG anhand der Instanzvorlage erstellen.
gcloud
Wenn Sie einem Dienstkonto Zugriff auf ein bestimmtes Image gewähren möchten, verwenden Sie den Befehl gcloud compute images add-iam-policy-binding
:
gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \ --role='roles/compute.imageUser'
Dabei gilt:
Sie können jetzt eine Instanzvorlage anhand eines Image aus dem Image-Projekt und eine MIG anhand der Instanzvorlage erstellen.
REST
Verwendung freigegebener Images und Snapshots steuern
Nachdem Sie Ihre Images für andere Nutzer freigegeben haben, können Sie steuern, wo diese Nutzer diese Ressourcen in Ihrer Organisation verwenden. Mit der Einschränkung constraints/compute.storageResourceUseRestrictions
können Sie festlegen, in welchen Projekten Nutzer Ihre Speicherressourcen verwenden dürfen.
Sie müssen die Berechtigung haben, die Richtlinien Ihrer Organisation zu ändern, um diese Einschränkungen festzulegen. Die Rolle resourcemanager.organizationAdmin
hat beispielsweise die Berechtigung, diese Einschränkungen festzulegen.
Wenn Sie die Einschränkungen in der Organisationsrichtlinie fertig konfiguriert haben, sollten Sie diese Einschränkungen darauf prüfen, ob die gewünschten Beschränkungen erzielt wurden.
Images aus einem anderen Projekt verwenden
Wenn Ihnen Zugriff auf ein oder mehrere Images in einem anderen Projekt gewährt wurde, können Sie auf diese Images im Projekt zugreifen, indem Sie das Image-Projekt in Ihren Anfragen angeben.
So erstellen Sie beispielsweise eine VM anhand eines freigegebenen Image aus einem anderen Projekt:
Console
gcloud
Terraform
Wenn Sie in Terraform eine VM mit einem freigegebenen Image erstellen möchten, gehen Sie genauso vor wie beim Erstellen einer VM mit einem öffentlich verfügbaren Image.
REST
Wenn Sie in der API eine VM mit einem freigegebenen Image erstellen möchten, gehen Sie genauso vor wie beim Erstellen einer VM mit einem öffentlich verfügbaren Image.
Verwenden Sie zum Erstellen der VM aus einem freigegebenen Image die Methode instances.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
/zones/ZONE
/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME
", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME" } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }
Ersetzen Sie dabei Folgendes:
Sie können nichtflüchtige Bootlaufwerke auch aus Images in einem anderen Projekt erstellen. Informationen zum Erstellen eines Bootlaufwerks aus einem Image finden Sie unter Eigenständiges nichtflüchtiges Bootlaufwerk aus einem Image erstellen.
Zugriff auf freigegebene Images widerrufen
Wenn ein Nutzer keinen Zugriff mehr auf Ihre Compute Engine-Ressourcen benötigt, widerrufen Sie den Zugriff mit der Google Cloud Console, der Google Cloud CLI oder REST.
Console
gcloud
Verwenden Sie zum Entfernen eines Nutzers aus einer Rolle für ein Image den Befehl gcloud compute images
remove-iam-policy-binding
mit den Flags --member
und --role
.
gcloud compute images remove-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Dabei gilt:
Wenn Sie Zugriff auf eine Ressource widerrufen, die sich in der Betaphase befindet, verwenden Sie stattdessen den Befehl gcloud beta compute
.
REST
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-12-22 (UTC).