Ruoli che concedono l'accesso ad App Engine

I ruoli determinano quali servizi e azioni sono disponibili per un account utente o l'account di servizio. I seguenti tipi di ruoli concedono l'accesso ad App Engine:

  • Ruoli di base, che si applicano a tutti i servizi e le risorse in un incluso, a titolo esemplificativo, App Engine. Ad esempio, un account con il ruolo Editor possono modificare le impostazioni di App Engine, nonché Impostazioni spazio di archiviazione.

  • Ruoli predefiniti di App Engine, che forniscono un accesso granulare ad App Engine. Ogni servizio Il progetto Google Cloud fornisce i propri ruoli predefiniti. Ad esempio, un solo con il ruolo di Deployer App Engine può eseguire il deployment delle app di App Engine ma non può visualizzare o creare oggetti in Cloud Storage. Un account di questo tipo richiederebbe anche una specifica risorsa Cloud Storage ruolo predefinito per creare o visualizzare oggetti in Cloud Storage.

  • Ruoli personalizzati, che forniscono un accesso granulare in base a un elenco di autorizzazioni da te specificato.

Puoi utilizzare i ruoli di base quando lavori su progetti più piccoli con a esigenze meno complesse. Per controlli di accesso più ottimizzati, utilizza i ruoli predefiniti.

Ruoli di base

I ruoli di base si applicano a tutti i servizi e le risorse in un progetto. Ad esempio, un nel ruolo Editor può modificare le impostazioni di App Engine, Impostazioni di Cloud Storage.

Ruolo Autorizzazioni della console Google Cloud Autorizzazioni per gli strumenti
Owner Necessaria per creare applicazioni App Engine. Tutti i visualizzatori e gli editor privilegiati, oltre alla possibilità di visualizzare i deployment codice sorgente, invitare utenti, modificare i ruoli utente ed eliminare un'applicazione. Ha amministratore di accesso a tutte le risorse nel progetto. Necessaria per creare applicazioni App Engine. Può anche eseguire il deployment il codice dell'applicazione e aggiornare tutte le configurazioni.
Editor Visualizzare le informazioni dell'applicazione e modificare le impostazioni dell'applicazione. Ha amministratore di accesso a tutte le risorse nel progetto. Esegui il deployment del codice dell'applicazione e aggiorna indici/coda/cron.
Viewer Visualizzare le informazioni dell'applicazione. Ha amministratore di accesso a tutte le risorse nel progetto. Richiedere log

Ruoli predefiniti di App Engine

Role Permissions

(roles/appengine.appAdmin)

Read/Write/Modify access to all application configuration and settings.

To deploy new versions, a principal must have the Service Account User (roles/iam.serviceAccountUser) role on the assigned App Engine service account, and the Cloud Build Editor (roles/cloudbuild.builds.editor), and Cloud Storage Object Admin (roles/storage.objectAdmin) roles on the project.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.applications.update

appengine.instances.*

  • appengine.instances.delete
  • appengine.instances.enableDebug
  • appengine.instances.get
  • appengine.instances.list

appengine.memcache.addKey

appengine.memcache.flush

appengine.memcache.get

appengine.memcache.update

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.runtimes.actAsAdmin

appengine.services.*

  • appengine.services.delete
  • appengine.services.get
  • appengine.services.list
  • appengine.services.update

appengine.versions.create

appengine.versions.delete

appengine.versions.get

appengine.versions.list

appengine.versions.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.appCreator)

Ability to create the App Engine resource for the project.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.create

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.appViewer)

Read-only access to all application configuration and settings.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.get

appengine.versions.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.codeViewer)

Read-only access to all application configuration, settings, and deployed source code.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.get

appengine.versions.getFileContents

appengine.versions.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.debugger)

Ability to read or manage v2 instances.

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.*

  • appengine.instances.delete
  • appengine.instances.enableDebug
  • appengine.instances.get
  • appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.get

appengine.versions.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.deployer)

Read-only access to all application configuration and settings.

To deploy new versions, you must also have the Service Account User (roles/iam.serviceAccountUser) role on the assigned App Engine service account, and the Cloud Build Editor (roles/cloudbuild.builds.editor), and Cloud Storage Object Admin (roles/storage.objectAdmin) roles on the project.

Cannot modify existing versions other than deleting versions that are not receiving traffic.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.get

appengine.services.list

appengine.versions.create

appengine.versions.delete

appengine.versions.get

appengine.versions.list

artifactregistry.repositories.deleteArtifacts

artifactregistry.repositories.downloadArtifacts

artifactregistry.repositories.uploadArtifacts

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.memcacheDataAdmin)

Can get, set, delete, and flush App Engine Memcache items.

appengine.applications.get

appengine.memcache.addKey

appengine.memcache.flush

appengine.memcache.get

appengine.memcache.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.serviceAdmin)

Read-only access to all application configuration and settings.

Write access to module-level and version-level settings. Cannot deploy a new version.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

appengine.applications.listRuntimes

appengine.instances.delete

appengine.instances.get

appengine.instances.list

appengine.operations.*

  • appengine.operations.get
  • appengine.operations.list

appengine.services.*

  • appengine.services.delete
  • appengine.services.get
  • appengine.services.list
  • appengine.services.update

appengine.versions.delete

appengine.versions.get

appengine.versions.list

appengine.versions.update

resourcemanager.projects.get

resourcemanager.projects.list

I ruoli predefiniti per App Engine offrono un accesso opzioni per il controllo dell'accesso.

Questi ruoli forniscono solo l'accesso ad App Engine. Se il tuo progetto include come Cloud Storage o Cloud SQL, dovrai assegnare ruoli aggiuntivi per abilitare l'accesso agli altri servizi.

Confronto dei ruoli predefiniti di App Engine

La tabella seguente fornisce un confronto completo delle funzionalità di ogni il ruolo predefinito di App Engine.

Capacità App Engine Admin App Engine Service Admin Deployer App Engine App Engine Viewer App Engine Code Viewer
Elenca tutti i servizi, le versioni e le istanze
Visualizza tutte le impostazioni per applicazioni, servizi, versioni e istanze
Visualizza metriche di runtime come utilizzo delle risorse, informazioni sul caricamento e informazioni sugli errori
Visualizza il codice sorgente dell'app No No No No
Deployment di una nuova versione di un'app Sì, se concedi anche il ruolo Utente account di servizio No Sì, se concedi anche il ruolo Utente account di servizio No No
Suddividi o esegui la migrazione del traffico No*** No No
Avviare e arrestare una versione No No No
Elimina una versione No No
Elimina l'intero servizio No No No
Utilizza SSH per connetterti a un'istanza VM nell'ambiente flessibile No No No No
Arresta un'istanza No No No No
Disattiva e riattiva l'applicazione App Engine No No No No
Gestori degli accessi con una limitazione login:admin (solo runtime di prima generazione) No No No No
Aggiorna regole di spedizione No No No No
Aggiornare le impostazioni DoS No No No No
Aggiorna pianificazioni cron No No No No No
Aggiorna la scadenza predefinita dei cookie No No No No
Aggiorna referrer No No No No
Aggiornamento mittenti autorizzati dell'API Email No No No No

Per maggiori dettagli sulle autorizzazioni IAM specifiche concesse da ciascun ruolo, consulta la sezione Ruoli della l'API Admin.

Per un account responsabile solo del deployment delle nuove versioni di un'app, ti consigliamo di concedere i seguenti ruoli:

  • Ruolo Deployer App Engine (roles/appengine.deployer)
  • Ruolo Utente account di servizio (roles/iam.serviceAccountUser)

    Il ruolo Utente account di servizio Consente all'account di impersonare l'account di servizio predefinito di App Engine durante il processo di deployment.

  • Se l'account utilizza i comandi gcloud per il deployment, aggiungi anche questi ruoli:

    • Amministratore oggetti Storage (roles/storage.objectAdmin)
    • Editor Cloud Build (roles/cloudbuild.builds.editor)

Per maggiori dettagli su come concedere le autorizzazioni richieste, consulta Creazione di un account utente.

Separazione dei compiti di deployment e routing del traffico

Molte organizzazioni preferiscono separare l'attività di deployment di un'applicazione a quella appena creata, dall'attività di aumentare il traffico alla versione svolgere queste attività in vari ruoli professionali. Il Deployer di App Engine I ruoli Amministratore di servizio App Engine forniscono questa separazione:

  • Ruoli utente account di servizio e Deployer App Engine: gli account sono limitati a eseguendo il deployment di nuove versioni ed eliminando quelle precedenti che non gestiscono il traffico. L'account con questi ruoli non sarà in grado di configurare il traffico verso nessuna versione né modificare le impostazioni a livello di applicazione, come le regole di spedizione o l'autenticazione, dominio.
  • Ruolo Amministratore servizio App Engine: gli account non possono eseguire il deployment di una nuova versione di un'app né modificare le impostazioni a livello di applicazione. Tuttavia, questi account hanno i privilegi per modificare le proprietà di servizi e versioni esistenti, inclusa la modifica delle versioni in grado di gestire il traffico. Il servizio App Engine Il ruolo Amministratore è ideale per un reparto Operations/IT che gestisce l'accelerazione alle versioni di cui è stato appena eseguito il deployment.

Limitazioni dei ruoli predefiniti

Nessuno dei ruoli predefiniti di App Engine concede l'accesso a quanto segue:

  • Visualizzare e scaricare i log delle applicazioni.
  • Visualizza i grafici di Monitoring nella console Google Cloud.
  • Abilita e disabilita la fatturazione.
  • Esegui scansioni di sicurezza in Cloud Security Scanner.
  • Accedi alla configurazione o ai dati archiviati in Datastore, Task Queues, Cloud Search o qualsiasi altro prodotto di archiviazione piattaforma Cloud.