Ruoli che concedono l'accesso ad App Engine

I ruoli determinano i servizi e le azioni disponibili per un account utente o unaccount di serviziot. I seguenti tipi di ruoli concedono l'accesso ad App Engine:

  • Ruoli di base che si applicano a tutti i servizi e le risorse di un progetto, inclusi, a titolo esemplificativo, App Engine. Ad esempio, un account con il ruolo Editor può modificare le impostazioni di App Engine e di Cloud Storage.

  • Ruoli App Engine predefiniti, che forniscono un accesso granulare ad App Engine. Ogni servizio nel tuo progettoGoogle Cloud fornisce i propri ruoli predefiniti. Ad esempio, un account con solo il ruoloDeployer App Enginer può eseguire il deployment di app App Engine, ma non può visualizzare o creare oggetti in Cloud Storage. Un account di questo tipo avrebbe bisogno anche di un ruolo predefinito Cloud Storage specifico per creare o visualizzare oggetti in Cloud Storage.

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

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

Ruoli di base

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

Ruolo Google Cloud autorizzazioni della console Autorizzazioni degli strumenti
Owner Obbligatorio per creare applicazioni App Engine. Tutti i privilegi di visualizzatore ed editor, oltre alla possibilità di visualizzare il codice sorgente di cui è stato eseguito il deployment, invitare utenti, modificare i ruoli utente ed eliminare un'applicazione. Obbligatorio per creare applicazioni App Engine. Può anche eseguire il deployment del codice dell'applicazione e aggiornare tutte le configurazioni.
Editor Visualizza le informazioni sull'applicazione e modifica le impostazioni dell'applicazione. Esegui il deployment del codice dell'applicazione, aggiorna gli indici/le code/i cron.
Viewer Visualizza le informazioni sull'applicazione. Richiedere log

Ruoli App Engine predefiniti

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

artifactregistry.projectsettings.get

artifactregistry.repositories.deleteArtifacts

artifactregistry.repositories.downloadArtifacts

artifactregistry.repositories.uploadArtifacts

recommender.locations.*

  • recommender.locations.get
  • recommender.locations.list

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

artifactregistry.projectsettings.get

recommender.locations.*

  • recommender.locations.get
  • recommender.locations.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

artifactregistry.projectsettings.get

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.projectsettings.get

artifactregistry.repositories.deleteArtifacts

artifactregistry.repositories.downloadArtifacts

artifactregistry.repositories.uploadArtifacts

recommender.locations.*

  • recommender.locations.get
  • recommender.locations.list

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

artifactregistry.projectsettings.get

recommender.locations.*

  • recommender.locations.get
  • recommender.locations.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/appengine.serviceAgent)

Give App Engine Standard Envirnoment service account access to managed resources. Includes access to service accounts.

appengine.versions.delete

appengine.versions.get

appengine.versions.list

appengine.versions.update

artifactregistry.aptartifacts.create

artifactregistry.dockerimages.*

  • artifactregistry.dockerimages.get
  • artifactregistry.dockerimages.list

artifactregistry.files.download

artifactregistry.files.get

artifactregistry.files.list

artifactregistry.kfpartifacts.create

artifactregistry.locations.*

  • artifactregistry.locations.get
  • artifactregistry.locations.list

artifactregistry.mavenartifacts.*

  • artifactregistry.mavenartifacts.get
  • artifactregistry.mavenartifacts.list

artifactregistry.npmpackages.*

  • artifactregistry.npmpackages.get
  • artifactregistry.npmpackages.list

artifactregistry.packages.get

artifactregistry.packages.list

artifactregistry.projectsettings.get

artifactregistry.pythonpackages.*

  • artifactregistry.pythonpackages.get
  • artifactregistry.pythonpackages.list

artifactregistry.repositories.create

artifactregistry.repositories.downloadArtifacts

artifactregistry.repositories.get

artifactregistry.repositories.list

artifactregistry.repositories.listEffectiveTags

artifactregistry.repositories.listTagBindings

artifactregistry.repositories.readViaVirtualRepository

artifactregistry.repositories.uploadArtifacts

artifactregistry.tags.create

artifactregistry.tags.get

artifactregistry.tags.list

artifactregistry.tags.update

artifactregistry.versions.get

artifactregistry.versions.list

artifactregistry.yumartifacts.create

compute.addresses.create

compute.addresses.createInternal

compute.addresses.delete

compute.addresses.deleteInternal

compute.addresses.get

compute.addresses.list

compute.globalOperations.get

compute.networks.get

compute.regionOperations.get

compute.subnetworks.get

compute.subnetworks.use

compute.zoneOperations.get

datastore.databases.get

datastore.entities.create

datastore.entities.delete

datastore.entities.get

datastore.entities.list

datastore.entities.update

datastore.indexes.list

datastore.namespaces.*

  • datastore.namespaces.get
  • datastore.namespaces.list

datastore.statistics.*

  • datastore.statistics.get
  • datastore.statistics.list

iam.serviceAccounts.getAccessToken

iam.serviceAccounts.getOpenIdToken

iam.serviceAccounts.signBlob

serviceusage.consumerpolicy.*

  • serviceusage.consumerpolicy.analyze
  • serviceusage.consumerpolicy.get
  • serviceusage.consumerpolicy.update

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.enable

serviceusage.services.get

serviceusage.values.test

storage.buckets.create

storage.buckets.get

I ruoli predefiniti per App Engine offrono opzioni più granulari percontrollo dell'accesso'accesso.

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

Confronto tra i ruoli predefiniti di App Engine

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

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
Visualizzare tutte le impostazioni di applicazioni, servizi, versioni e istanze
Visualizza le metriche di runtime, come l'utilizzo delle risorse, le informazioni sul carico e le informazioni sugli errori
Visualizzare il codice sorgente dell'app No No No No
Eseguire il deployment di una nuova versione di un'app Sì, se concedi anche il ruolo Utente service account No Sì, se concedi anche il ruolo Utente service account No No
Suddividere o eseguire la migrazione del traffico No*** No No
Avviare e interrompere una versione No No No
Eliminare una versione No No
Eliminare un intero servizio No No No
Utilizzare SSH per connettersi a un'istanza VM nell'ambiente flessibile No No No No
Arresta un'istanza No No No No
Disattivare e riattivare l'applicazione App Engine No No No No
Gestori dell'accesso con una limitazione login:admin (solo runtime di prima generazione) No No No No
Aggiorna le regole di distribuzione No No No No
Aggiornare le impostazioni DoS No No No No
Aggiorna pianificazioni cron No No No No No
Aggiornare la scadenza predefinita dei cookie No No No No
Aggiornare i referrer No No No No
Aggiorna mittenti autorizzati dell'API Email No No No No

Per informazioni dettagliate sulle autorizzazioni IAM specifiche concesse da ogni ruolo, consulta la sezione Ruoli dell'API Admin.

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

  • Ruolo Deployer App Engine (roles/appengine.deployer)
  • Ruolo Service Account User (roles/iam.serviceAccountUser)

    Il ruolo Service Account User consente all'account di simulare l'identità del account di servizio App Engine predefinito durante il processo di deployment.

  • Se l'account utilizza comandi gcloud o altri strumenti App Engine per il deployment, aggiungi anche questi ruoli:

    • Storage Object Admin (roles/storage.objectAdmin)
    • Editor Cloud Build (roles/cloudbuild.builds.editor)

Per informazioni dettagliate su come concedere le autorizzazioni richieste, vedi Creare un account utente.

Separazione dei compiti di deployment e routing del traffico

Molte organizzazioni preferiscono separare l'attività di deployment di una versione dell'applicazione dall'attività di aumento graduale del traffico verso la versione appena creata e far svolgere queste attività da diverse funzioni lavorative. I ruoli App Engine Deployer e Amministratore del servizio App Engine forniscono questa separazione:

  • Ruoli Deployer App Engine e Service Account User: gli account possono solo eseguire il deployment di nuove versioni ed eliminare le versioni precedenti che non generano traffico. L'account con questi ruoli non potrà configurare il traffico verso nessuna versione né modificare le impostazioni a livello di applicazione, come le regole di distribuzione o il dominio di autenticazione.
  • Ruolo Amministratore del 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 dispongono dei privilegi per modificare le proprietà di servizi e versioni esistenti, inclusa la modifica delle versioni che possono gestire il traffico. Il ruolo Amministratore servizio App Engine è ideale per un reparto Operations/IT che gestisce l'aumento del traffico verso le versioni appena implementate.

Limitazioni dei ruoli predefiniti

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

  • Visualizzare e scaricare i log dell'applicazione.
  • Visualizza i grafici di monitoraggio nella console Google Cloud .
  • Abilita e disabilita la fatturazione.
  • Esegui scansioni di sicurezza in Cloud Security Scanner.
  • Accedere alla configurazione o ai dati archiviati in Datastore, Task Queues, Cloud Search o qualsiasi altro prodotto di archiviazionepiattaforma Cloudm.