In diesem Dokument wird die programmatische Authentifizierung bei der Compute Engine beschrieben. Wie Sie sich bei der Compute Engine authentifizieren, hängt von der Schnittstelle ab, über die Sie auf die API zugreifen, und von der Umgebung, in der Ihr Code ausgeführt wird.
Weitere Informationen zu den verschiedenen Optionen zur Authentifizierung von in Compute Engine ausgeführten Anwendungen und Arbeitslasten bei der Trusted Cloud by S3NS API finden Sie unter Authentifizierungsmethode für Arbeitslasten auswählen.Weitere Informationen zur Trusted Cloud Authentifizierung finden Sie unter Authentifizierungsmethoden.
API-Zugriff
Die Compute Engine unterstützt den programmatischen Zugriff. Sie haben folgende Möglichkeiten, um auf die API zuzugreifen:
Clientbibliotheken
Die Compute Engine-Clientbibliotheken bieten allgemeine Sprachunterstützung für die programmatische Authentifizierung bei Compute Engine. Zur Authentifizierung von Aufrufen an Trusted Cloud by S3NS APIs unterstützen Clientbibliotheken Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC). Die Bibliotheken suchen nach Anmeldedaten an einer Reihe von definierten Standorten und verwenden diese Anmeldedaten, um Anfragen an die API zu authentifizieren. Mit ADC können Sie Anmeldedaten für Ihre Anwendung in verschiedenen Umgebungen bereitstellen, z. B. in der lokalen Entwicklung oder Produktion, ohne den Anwendungscode ändern zu müssen.
Google Cloud CLI
Wenn Sie die gcloud CLI verwenden, um auf Compute Engine zuzugreifen, melden Sie sich in der gcloud CLI mit einem Nutzerkonto an, das die von der gcloud CLI verwendeten Anmeldedaten bereitstellt.
Wenn die Sicherheitsrichtlinien Ihrer Organisation verhindern, dass Nutzerkonten die erforderlichen Berechtigungen haben, können Sie die Identitätsübernahme des Dienstkontos verwenden.
Weitere Informationen finden Sie unter Für die Verwendung der gcloud CLI authentifizieren. Weitere Informationen zur Verwendung der gcloud CLI mit Compute Engine finden Sie auf den Referenzseiten der gcloud CLI.
REST
Sie können sich bei Compute Engine API mithilfe Ihrer gcloud CLI-Anmeldedaten oder mithilfe der Standardanmeldedaten für Anwendungen authentifizieren. Weitere Informationen zur Authentifizierung für REST-Anfragen finden Sie unter Für die Verwendung von REST authentifizieren. Informationen zu den Arten von Anmeldedaten finden Sie unter gcloud CLI-Anmeldedaten und ADC-Anmeldedaten.
Authentifizierung für Compute Engine einrichten
Wie Sie die Authentifizierung einrichten, hängt von der Umgebung ab, in der Ihr Code ausgeführt wird.
Am häufigsten werden folgende Optionen zum Einrichten der Authentifizierung verwendet. Weitere Optionen und Informationen zur Authentifizierung finden Sie unter Authentifizierungsmethoden.
Für eine lokale Entwicklungsumgebung
Sie können Anmeldedaten für eine lokale Entwicklungsumgebung auf folgende Weise einrichten:
- Nutzeranmeldedaten für Clientbibliotheken oder Tools von Drittanbietern
- Nutzeranmeldedaten für REST-Anfragen über die Befehlszeile
- Identitätsübertragung für ein Dienstkonto
Clientbibliotheken oder Tools von Drittanbietern
Richten Sie Standardanmeldedaten für Anwendungen (ADC) für Ihre lokale Umgebung ein.
-
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Ein Anmeldebildschirm wird angezeigt. Nach der Anmeldung werden Ihre Anmeldedaten in der lokalen Anmeldedatendatei für ADC gespeichert.
Weitere Informationen zum Arbeiten mit ADC in einer lokalen Umgebung finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.
REST-Anfragen über die Befehlszeile
Wenn Sie eine REST-Anfrage über die Befehlszeile stellen, können Sie Ihre gcloud CLI-Anmeldedaten verwenden. Fügen Sie dazu gcloud auth print-access-token
in den Befehl ein, der die Anfrage sendet.
Im folgenden Beispiel werden Dienstkonten für das angegebene Projekt aufgelistet. Sie können für jede REST-Anfrage das gleiche Muster verwenden.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Trusted Cloud -Projekt-ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Weitere Informationen zur Authentifizierung mit REST und gRPC finden Sie unter Für die Verwendung von REST authentifizieren. Informationen zum Unterschied zwischen Ihren lokalen ADC-Anmeldedaten und Ihren gcloud CLI-Anmeldedaten finden Sie unter Authentifizierungskonfiguration der gcloud CLI und ADC-Konfiguration.
Identitätsübertragung für ein Dienstkonto
In den meisten Fällen können Sie Ihre Nutzeranmeldedaten zur Authentifizierung über eine lokale Entwicklungsumgebung verwenden. Wenn dies nicht möglich ist oder Sie die einem Dienstkonto zugewiesenen Berechtigungen testen müssen, können Sie die Dienstkonto-Identitätsübernahme verwenden. Sie benötigen die Berechtigung iam.serviceAccounts.getAccessToken
, die in der IAM-Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator
) enthalten ist.
Sie können die gcloud CLI so einrichten, dass die Identitätsübernahme des Dienstkontos mit dem Befehl gcloud config set
verwendet wird:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Für ausgewählte Sprachen können Sie die Identität des Dienstkontos verwenden, um eine lokale ADC-Datei zur Verwendung durch Clientbibliotheken zu erstellen. Dieser Ansatz wird nur für die Go-, Java-, Node.js- und Python-Clientbibliotheken unterstützt. Für die anderen Sprachen wird er nicht unterstützt.
Verwenden Sie zum Einrichten einer lokalen ADC-Datei mit Identitätsübernahme des Dienstkontos das Flag --impersonate-service-account
mit dem Befehl gcloud auth application-default login
:
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL
Weitere Informationen zu Identitätsübernahme des Dienstkontos.
Am Trusted Cloud by S3NS
Zur Authentifizierung einer in Trusted Cloudausgeführten Arbeitslast verwenden Sie die Anmeldedaten des an die Compute-Ressource, in der Ihr Code ausgeführt wird, angehängten Dienstkontos, z. B. einer Compute Engine-VM-Instanz. Dieser Ansatz ist die bevorzugte Authentifizierungsmethode für Code, der in einer Trusted Cloud -Computing-Ressource ausgeführt wird.
Bei den meisten Diensten müssen Sie das Dienstkonto beim Erstellen der Ressource, in der der Code ausgeführt wird, anhängen. Sie können das Dienstkonto nicht später hinzufügen oder ersetzen. Compute Engine ist eine Ausnahme. Mit Compute Engine können Sie jederzeit ein Dienstkonto an eine VM-Instanz anhängen.
Verwenden Sie die gcloud CLI, um ein Dienstkonto zu erstellen und an Ihre Ressource anzuhängen:
-
After installing the Google Cloud CLI, sign in to the gcloud CLI with your federated identity and then initialize it by running the following command:
gcloud init
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com --member="principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/SUBJECT_ID" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service account.PROJECT_ID
: the project ID where you created the service account.POOL_ID
: a workforce identity pool ID.-
SUBJECT_ID
: a subject ID; typically the identifier for a user in a workforce identity pool. For details, see Represent workforce pool users in IAM policies.
-
-
Erstellen Sie die Ressource, in der der Code ausgeführt wird, und hängen Sie das Dienstkonto an diese Ressource an. Wenn Sie beispielsweise Compute Engine verwenden:
Create a Compute Engine instance. Configure the instance as follows:-
Ersetzen Sie
INSTANCE_NAME
durch Ihren bevorzugten Instanznamen. -
Legen Sie das Flag
--zone
auf die Zone fest, in der Sie Ihre Instanz erstellen möchten. -
Legen Sie das Flag
--service-account
auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos fest.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
-
Ersetzen Sie
Weitere Informationen zur Authentifizierung bei Google APIs finden Sie unter Authentifizierungsmethoden.
Lokal oder bei einem anderen Cloud-Anbieter
Die bevorzugte Methode zum Einrichten der Authentifizierung außerhalb von Trusted Cloud ist die Verwendung der Identitätsföderation von Arbeitslasten. Weitere Informationen finden Sie in der Authentifizierungsdokumentation unter ADC für einen lokalen oder anderen Cloud-Anbieter einrichten.
Zugriffssteuerung für Compute Engine
Nach der Authentifizierung bei Compute Engine müssen Sie berechtigt sein, auf Trusted Cloud -Ressourcen zuzugreifen. Compute Engine verwendet für die Autorisierung die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM).
Weitere Informationen zu Compute Engine-IAM-Rollen und -Berechtigungen. Weitere Informationen zu IAM und Autorisierung finden Sie in der IAM-Übersicht.
Nächste Schritte
- Informationen zu Anwendungen und Arbeitslasten, die in Compute Engine ausgeführt werden, finden Sie unter Authentifizierungsmethoden für Arbeitslasten
- Weitere Informationen zuTrusted Cloud -Authentifizierungsmethoden
- Liste der Authentifizierungsanwendungsfälle