I criteri di Principal Access Boundary (PAB) ti consentono di limitare le risorse a cui un insieme di entità può accedere. Questa pagina spiega come modificare i criteri di limite di accesso all'entità esistenti e come modificare le associazioni dei criteri per i criteri di limite di accesso all'entità per cambiare a chi si applicano i criteri.
Prima di iniziare
Configurare l'autenticazione.
Select the tab for how you plan to use the samples on this page:
gcloud
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.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Leggi la panoramica dei criteri di Principal Access Boundary.
Ruoli richiesti per modificare i criteri di Principal Access Boundary
Per ottenere l'autorizzazione necessaria per modificare i criteri di Principal Access Boundary, chiedi all'amministratore di concederti il ruolo IAM Amministratore di Principal Access Boundary (
roles/iam.principalAccessBoundaryAdmin
) nella tua organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene l'autorizzazione
iam.principalaccessboundarypolicies.update
necessaria per modificare i criteri di limiti di accesso all'entità.Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Ruoli richiesti per modificare le associazioni dei criteri di Principal Access Boundary
Le autorizzazioni necessarie per modificare le associazioni dei criteri per i criteri di confine dell'accesso dell'entità dipendono dal set di entità associato al criterio.
Per ottenere le autorizzazioni necessarie per modificare le associazioni dei criteri per i criteri di limite di accesso all'entità, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Utente Principal Access Boundary (
roles/iam.principalAccessBoundaryUser
) della tua organizzazione -
Modifica le associazioni dei criteri per i criteri di confine di accesso delle entità associati ai pool di federazione delle identità per la forza lavoro:
IAM Workforce Pool Admin (
roles/iam.workforcePoolAdmin
) nel pool di federazione delle identità per la forza lavoro di destinazione -
Modifica le associazioni dei criteri per i criteri di confine di accesso dei principali associati ai pool di federazione delle identità per il workload:
Amministratore pool Workload Identity IAM (
roles/iam.workloadIdentityPoolAdmin
) nel progetto proprietario del pool di federazione delle identità per la forza lavoro di destinazione -
Modifica le associazioni dei criteri per i criteri di confine di accesso dei principali associati a un dominio Google Workspace:
Amministratore IAM del pool di Workspace (
roles/iam.workspacePoolAdmin
) nell'organizzazione -
Modifica le associazioni dei criteri per i criteri di confine dell'accesso dell'entità associati al set di entità di un progetto:
Amministratore IAM del progetto (
roles/resourcemanager.projectIamAdmin
) nel progetto -
Modifica le associazioni dei criteri di confine dell'accesso dell'entità associati al set di entità di una cartella:
Amministratore IAM della cartella (
roles/resourcemanager.folderIamAdmin
) nella cartella -
Modifica le associazioni dei criteri di confine dell'accesso dell'entità associati all'insieme di entità di un'organizzazione:
Amministratore dell'organizzazione (
roles/resourcemanager.organizationAdmin
) nell'organizzazione
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per modificare le associazioni dei criteri per i criteri di limiti di accesso all'entità. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per modificare le associazioni dei criteri per i criteri di confine dell'accesso dell'entità sono necessarie le seguenti autorizzazioni:
-
iam.principalaccessboundarypolicies.bind
sull'organizzazione -
Modifica le associazioni dei criteri per i criteri di confine dell'accesso dell'entità associati ai pool della federazione delle identità della forza lavoro:
iam.workforcePools.updatePolicyBinding
nel pool della federazione delle identità della forza lavoro di destinazione -
Modifica le associazioni dei criteri per i criteri di confine di accesso delle entità associati ai pool di federazione delle identità della forza lavoro:
iam.workloadIdentityPools.updatePolicyBinding
nel progetto proprietario del pool di federazione delle identità della forza lavoro di destinazione -
Modifica le associazioni dei criteri di confine dell'accesso dell'entità associati a un dominio Google Workspace:
iam.workspacePools.updatePolicyBinding
nell'organizzazione -
Modifica le associazioni dei criteri per i criteri di confine dell'accesso dell'entità associati all'insieme di entità di un progetto:
resourcemanager.projects.updatePolicyBinding
nel progetto -
Modifica le associazioni dei criteri per i criteri di confine dell'accesso dell'entità associati all'insieme di entità di una cartella:
resourcemanager.folders.updatePolicyBinding
nella cartella -
Modifica le associazioni dei criteri per i criteri di confine dell'accesso dell'entità associati all'insieme di entità di un'organizzazione:
resourcemanager.organizations.updatePolicyBinding
nell'organizzazione
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Modificare un criterio di Principal Access Boundary esistente
Se vuoi aggiungere regole a un criterio di limite di accesso all'entità, rimuoverle da un criterio di limite di accesso all'entità o modificare i metadati di un criterio di limite di accesso all'entità, modifica il criterio di limite di accesso all'entità.
Puoi modificare un criterio di confine di accesso dei principali utilizzando la console Google Cloud, gcloud CLI o l'API REST IAM.
Console
Nella console Google Cloud, vai alla pagina Regole di confine di accesso principale.
Seleziona l'organizzazione proprietaria del criterio di confine dell'accesso dell'entità che vuoi modificare.
Fai clic sull'ID della regola di Principal Access Boundary che vuoi modificare.
Fai clic su
Modifica criterio.Per modificare le regole del criterio:
- Fai clic sulla regola che vuoi modificare.
- Modifica la descrizione della regola o le risorse incluse nella regola.
- Fai clic su Fine.
Per eliminare una regola dal criterio, fai clic su
Elimina nella riga della regola.Per modificare il nome visualizzato del criterio, modifica il campo Nome visualizzato.
Per modificare la versione di applicazione del criterio, fai clic sull'elenco Versione di applicazione e scegli un nuovo valore.
Fai clic su Salva.
gcloud
Il comando
gcloud beta iam principal-access-boundary-policies update
aggiorna un criterio di Principal Access Boundary esistente.Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PAB_POLICY_ID
: l'ID del criterio Principal Access Boundary che vuoi actualizare, ad esempioexample-policy
. ORG_ID
: l'ID dell'organizzazione proprietaria del criterio di Principal Access Boundary. Gli ID organizzazione sono numerici, ad esempio123456789012
.-
FIELD_TO_UPDATE=UPDATED_VALUE
: i campi da actualizare e il valore aggiornato corrispondente.Di seguito sono riportati alcuni esempi di flag che puoi utilizzare per aggiornare i campi del criterio:
-
--display-name=DISPLAY_NAME
: sostituisci il nome visualizzato del criterio conDISPLAY_NAME
. -
--details-enforcement-version=ENFORCEMENT_VERSION
: aggiorna la versione di applicazione delle norme suENFORCEMENT_VERSION
. -
--details-rules=RULES_FILE.json
: sostituisci le regole del criterio di Principal Access Boundary con quelle inRULES_FILE.json
. Per scoprire come formattare il file delle regole, consulta Creare un criterio di Principal Access Boundary.Se utilizzi questo flag, non puoi utilizzare il flag
--add-details-rules
. -
--add-details-rules=RULES_FILE
: accoda le regole inRULES_FILE.json
alle regole esistenti del criterio. Per scoprire come formattare il file delle regole, consulta Creare un criterio di Principal Access Boundary.Se utilizzi questo flag, non puoi utilizzare il flag
--details-rules
. -
--remove-details-rules=RULES_FILE
: rimuovi le regole inRULES_FILE.json
dalle regole esistenti del criterio. Per scoprire come formattare il file delle regole, consulta Creare un criterio di Principal Access Boundary. Vengono rimosse solo le regole che corrispondono esattamente a una delle regole inRULES_FILE.json
.Se utilizzi questo flag, non puoi utilizzare il flag
--clear-rule-details
. -
--clear-details-rules
: cancella tutte le regole dal criterio di Principal Access Boundary.Se utilizzi questo flag, non puoi utilizzare il flag
--remove-rule-details
.
Per un elenco completo dei flag che puoi utilizzare per aggiornare un criterio di Principal Access Boundary, consulta la documentazione di riferimento del comando
gcloud beta iam principal-access-boundary-policies update
. -
FORMAT
: il formato della risposta. Utilizzajson
oyaml
.
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud beta iam principal-access-boundary-policies update PAB_POLICY_ID \ --organization=ORG_ID --location=global \ --FIELD_TO_UPDATE=UPDATED_VALUE \ --format=FORMAT
Windows (PowerShell)
gcloud beta iam principal-access-boundary-policies update PAB_POLICY_ID ` --organization=ORG_ID --location=global ` --FIELD_TO_UPDATE=UPDATED_VALUE ` --format=FORMAT
Windows (cmd.exe)
gcloud beta iam principal-access-boundary-policies update PAB_POLICY_ID ^ --organization=ORG_ID --location=global ^ --FIELD_TO_UPDATE=UPDATED_VALUE ^ --format=FORMAT
La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta. Al termine dell'operazione, la risposta stampa il criterio del limite di accesso all'entità aggiornato.
Request issued for: [example-policy] Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374208720-6181fae5e2034-2d8a712b-5c92e5b9] to complete...done. Updated principalAccessBoundaryPolicy [example-policy]. { "name": "organizations/123456789012/locations/global/principalAccessBoundaryPolicies/example-policy", "uid": "puid_13364150419245236225", "etag": "W/\"Gh/PcTdJD/AWHUhPW45kdw==\"", "displayName": "Updated display name", "createTime": "2024-05-07T00:05:48.295209Z", "updateTime": "2024-05-10T20:50:09.200421Z", "details": [ "rules": { [ "description": "Make principals eligible to access example.com" "resources": { "//cloudresourcemanager.googleapis.com/organizations/123456789012" }, "effect": ALLOW ] }, "enforcementVersion": "1" ] }
REST
Il metodo
principalAccessBoundaryPolicies.patch
aggiorna una policy di Principal Access Boundary esistente.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
ORG_ID
: l'ID dell'organizzazione proprietaria del criterio di Principal Access Boundary. Gli ID organizzazione sono numerici, ad esempio123456789012
.-
PAB_POLICY_ID
: l'ID del criterio Principal Access Boundary che vuoi actualizare, ad esempioexample-policy
. -
FIELDS_TO_UPDATE
: un elenco separato da virgole dei campi da actualizare. Se non specifichi i campi da aggiornare, IAM sostituisce il criterio esistente con i contenuti del corpo della richiesta.I valori accettati sono
displayName
,details
,details.rules
,details.rules.description
,details.rules.resources
,details.rules.effect
edetails.enforcementVersion
. DISPLAY_NAME
: facoltativo. Una descrizione in formato leggibile da parte dell'utente del criterio di confine dell'accesso dell'entità, ad esempioExample policy
. Il nome visualizzato può contenere un massimo di 63 caratteri.-
PAB_RULES
: un elenco di regole dei limiti di accesso all'entità che definiscono le risorse a cui possono accedere le entità interessate. Un criterio di Principal Access Boundary può avere fino a 500 regole. Ogni regola ha il seguente formato:{ "description": "DESCRIPTION", "resources": [ RESOURCES ], "effect": ALLOW }
Sostituisci i seguenti valori:
DESCRIPTION
: facoltativo. La descrizione della regola del criterio di Principal Access Boundary. La descrizione può contenere un massimo di 256 caratteri.-
RESOURCES
: un elenco di risorse Resource Manager (progetti, cartelle e organizzazioni) a cui vuoi che le entità possano accedere. Qualsiasi entità soggetta a questo criterio è idonea ad accedere a queste risorse.Ogni criterio di limite di accesso all'entità può fare riferimento a un massimo di 500 risorse in tutte le regole del criterio.
-
ENFORCEMENT_VERSION
: la versione dei criteri di Principal Access Boundary che IAM utilizza per l'applicazione del criterio. La versione di applicazione determina per quali autorizzazioni IAM viene applicato il criterio di limite di accesso all'entità.I valori accettati sono
1
elatest
.Per saperne di più sulle versioni di applicazione, consulta Versioni di applicazione di Principal Access Boundary.
Metodo HTTP e URL:
PATCH https://iam.googleapis.com/v3beta/organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID?updateMask=FIELDS_TO_UPDATE
Corpo JSON della richiesta:
{ "displayName": DISPLAY_NAME, "details": { "rules": [ PAB_RULES ], "enforcementVersion": "ENFORCEMENT_VERSION", } }
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta.
{ "name": "organizations/123456789012/locations/global/operations/operation-1715626721931-6185a7953ef76-76f80ee4-19cd1bf7", "metadata": { "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata", "createTime": "2024-05-13T18:58:43.721277235Z", "target": "organizations/123456789012/locations/global/principalAccessBoundaryPolicies/example-policy", "verb": "update", "requestedCancellation": false, "apiVersion": "v3beta" }, "done": false }
Modificare l'utente per cui viene applicato un criterio di confine dell'accesso dell'entità
Dopo aver creato un'associazione di criteri per un criterio di confine dell'accesso dell'entità, non puoi cambiare l'ID criterio o l'insieme di entità nell'associazione. Di conseguenza, se vuoi cambiare per chi viene applicato un criterio di confine dell'accesso dell'entità, devi eseguire una delle seguenti operazioni:
- Per perfezionare l'insieme di entità per le quali viene applicato un criterio di confine dell'accesso dell'entità, puoi modificare le condizioni nell'associazione dei criteri. Per modificare le condizioni di un'associazione, modifica l'associazione dei criteri.
- Per applicare il criterio di confine dell'accesso dell'entità a un altro insieme di entità, crea una nuova associazione del criterio che lo associ a quell'insieme di entità.
- Per rimuovere un criterio di Principal Access Boundary da un insieme di entità, elimina l'associazione del criterio al set di entità.
Modificare le associazioni di criteri esistenti per i criteri di confine dell'accesso dell'entità
Dopo aver creato una associazione di norme, puoi modificarla per modificare le condizioni o il nome visualizzato.
Puoi modificare un'associazione di criteri utilizzando la console Google Cloud, gcloud CLI o l'API REST IAM.
Console
Nella console Google Cloud, vai alla pagina Regole di confine di accesso principale.
Seleziona l'organizzazione proprietaria del criterio di confine dell'accesso dell'entità che vuoi modificare.
Fai clic sull'ID della policy di Principal Access Boundary di cui vuoi modificare le associazioni.
Fai clic sulla scheda Vincoli.
Trova l'ID della pubblicazione che vuoi modificare. Nella riga della associazione, fai clic su
Azioni e poi su Modifica associazione.Per aggiornare il nome visualizzato della associazione, modifica il campo Nome visualizzato.
Per aggiungere una condizione all'associazione:
- Fai clic su Aggiungi condizione.
- Nel campo Titolo, inserisci un breve riepilogo dello scopo della condizione.
- (Facoltativo) Nel campo Descrizione, inserisci una descrizione più lunga della condizione.
- Nel campo Espressione, inserisci l'espressione della condizione che utilizza la
sintassi del Common Expression Language (CEL). L'espressione deve fare riferimento agli attributi
principal.type
oprincipal.subject
. Gli altri attributi non sono supportati. - Fai clic su Salva.
Per aggiornare una condizione esistente:
- Fai clic su Modifica condizione accanto al nome della condizione.
- Aggiorna il titolo, la descrizione o l'espressione della condizione.
- Fai clic su Salva.
Per salvare le modifiche, fai clic su Salva.
gcloud
Il comando
gcloud beta iam policy-bindings update
aggiorna un'associazione di norme esistente.Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
BINDING_ID
: l'ID dell'associazione di norme da aggiornare, ad esempioexample-binding
. -
RESOURCE_TYPE
: il tipo di risorsa Resource Manager (progetto, cartella o organizzazione) di cui è un elemento secondario il vincolo dei criteri. Utilizza il valoreproject
,folder
oorganization
Il tipo di risorsa dipende dall'entità impostata nell'associazione dei criteri. Per sapere quale tipo di risorsa utilizzare, consulta Tipi di principali supportati.
RESOURCE_ID
: l'ID del progetto, della cartella o dell'organizzazione di cui è un elemento secondario il vincolo dei criteri. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012
.-
FIELD_TO_UPDATE=UPDATED_VALUE
: i campi da actualizare e il valore aggiornato corrispondente.Di seguito sono riportati alcuni esempi di flag che puoi utilizzare per aggiornare i campi in un'associazione di norme:
-
--display-name=DISPLAY_NAME
: sostituisci il nome visualizzato della associazione conDISPLAY_NAME
. -
--condition-description=CONDITION_DESCRIPTION
: se la associazione ha una condizione, sostituisci la descrizione della condizione conCONDITION_DESCRIPTION
. In caso contrario, aggiungi una nuova condizione alla associazione con la descrizione specificata. Se utilizzi questo flag per aggiornare una associazione che non ha una condizione, devi impostare anche il flag--condition-expression
. -
--condition-expression=CONDITION_EXPRESSION
: se la associazione ha una condizione, sostituisci l'espressione della condizione conCONDITION_EXPRESSION
. In caso contrario, aggiungi una nuova condizione alla associazione con l'espressione specificata. -
--condition-title=CONDITION_TITLE
: se la definizione ha una condizione, sostituisci il titolo della condizione conCONDITION_TITLE
. In caso contrario, aggiungi una nuova condizione all'associazione con il titolo specificato. Se utilizzi questo flag per aggiornare un vincolo che non ha una condizione, devi impostare anche il--condition-expression
flag.
Per un elenco completo dei campi che puoi aggiornare, consulta la documentazione di riferimento del comando
gcloud beta iam policy-bindings update
. -
FORMAT
: il formato della risposta. Utilizzajson
oyaml
.
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud beta iam policy-bindings update BINDING_ID \ --RESOURCE_TYPE=RESOURCE_ID --location=global \ --FIELD_TO_UPDATE=UPDATED_VALUE \ --format=FORMAT
Windows (PowerShell)
gcloud beta iam policy-bindings update BINDING_ID ` --RESOURCE_TYPE=RESOURCE_ID --location=global ` --FIELD_TO_UPDATE=UPDATED_VALUE ` --format=FORMAT
Windows (cmd.exe)
gcloud beta iam policy-bindings update BINDING_ID ^ --RESOURCE_TYPE=RESOURCE_ID --location=global ^ --FIELD_TO_UPDATE=UPDATED_VALUE ^ --format=FORMAT
La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta.
Update request issued for: [my-binding] Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374545618-6181fc272c6f9-55ff07f4-97d0ac76] to complete...done. Updated policyBinding [my-binding]. { "createTime": "2024-05-06T18:08:24.729843Z", "displayName": "Updated display name", "etag": "W/\"xkdnPfTxoxyVqOwhQSJbMg==\"", "name": "organizations/123456789012/locations/global/policyBindings/example-binding", "policy": "organizations/123456789012/locations/global/principalAccessBoundaryPolicies/example-pab-policy", "policyKind": "PRINCIPAL_ACCESS_BOUNDARY", "policyUid": "puid_9519202237377675265", "target": { "principalSet": "//cloudresourcemanager.googleapis.com/organizations/123456789012" }, "uid": "buid_9904260005517852673", "updateTime": "2024-05-06T18:11:16.798841Z" }
REST
Il metodo
policyBindings.patch
aggiorna un'associazione di norme esistente.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
-
RESOURCE_TYPE
: il tipo di risorsa Resource Manager (progetto, cartella o organizzazione) di cui è un elemento secondario il vincolo dei criteri. Utilizza il valoreprojects
,folders
oorganizations
Il tipo di risorsa dipende dall'entità impostata nell'associazione dei criteri. Per sapere quale tipo di risorsa utilizzare, consulta Tipi di principali supportati.
RESOURCE_ID
: l'ID del progetto, della cartella o dell'organizzazione di cui è un elemento secondario il vincolo dei criteri. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012
.-
BINDING_ID
: l'ID dell'associazione di norme da aggiornare, ad esempioexample-binding
. -
FIELDS_TO_UPDATE
: un elenco separato da virgole dei campi da actualizare. Se non specifichi i campi da aggiornare, IAM sostituisce il binding esistente con i contenuti del corpo della richiesta.I valori accettati sono
displayName
,condition
,condition.expression
,condition.title
econdition.description
. DISPLAY_NAME
: facoltativo. Una descrizione leggibile della associazione, ad esempioExample binding
. Il nome visualizzato può contenere un massimo di 63 caratteri.-
CONDITION_DETAILS
: facoltativo. Un'espressione di condizione che specifica per quali entità nel set di entità viene applicato il criterio di Principal Access Boundary. Contiene i seguenti campi:-
expression
: un'espressione di condizione che utilizza la sintassi di Common Expression Language (CEL). L'espressione deve fare riferimento agli attributiprincipal.type
oprincipal.subject
. Gli altri attributi non sono supportati.L'espressione può contenere fino a 10 operatori logici (
&&
,||
,!
) e può avere una lunghezza massima di 250 caratteri. -
title
: facoltativo. Un breve riepilogo dello scopo della condizione. -
description
: facoltativo. Una descrizione più lunga della condizione.
-
Metodo HTTP e URL:
POST https://iam.googleapis.com/v3beta/RESOURCE_TYPE/RESOURCE_ID/locations/global/policyBindings/BINDING_ID?updateMask=FIELDS_TO_UPDATE
Corpo JSON della richiesta:
{ "displayName": DISPLAY_NAME, "condition": { CONDITION_DETAILS } }
Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta.
{ "name": "organizations/123456789012/locations/global/operations/operation-1715373159010-6181f6fcccfa7-dcd0055c-00c22cad", "metadata": { "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata", "createTime": "2024-05-10T20:32:39.254910121Z", "target": "organizations/123456789012/locations/global/policyBindings/example-binding", "verb": "update", "requestedCancellation": false, "apiVersion": "v3beta" }, "done": false }
Passaggi successivi
- Creare e applicare i criteri di confine dell'accesso dell'entità
- Visualizzare i criteri di Principal Access Boundary
- Rimuovere i criteri di Principal Access Boundary
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-19 UTC.