Gestisci l'accesso con privilegi just-in-time ai progetti

Last reviewed 2024-07-22 UTC

Questo documento descrive come utilizzare uno strumento open source per implementare accesso privilegiato just-in-time ai progetti Google Cloud. Giusto in tempo l'accesso privilegiato ti consente di concedere l'accesso temporaneo ai progetti per un insieme limitato degli utenti solo quando è necessario l'accesso.

Il documento è destinato agli amministratori che gestire l'accesso degli utenti alle risorse Google Cloud. Si presume che tu abbia familiarità con Google Cloud, Identity and Access Management (IAM) e i concetti correlati.

Panoramica della gestione degli accessi con privilegi just-in-time

Se segui il principio del privilegio minimo, concedi agli utenti il numero sufficiente di così possono svolgere le attività quotidiane, ma non possono fare altro. Questo principio consente di ridurre i rischi. Tuttavia, può creare problemi quando a volte devono eseguire un'azione con privilegi, ad esempio per gestire un incidente imprevisto. Gli esempi includono la risoluzione dei problemi un problema in un sistema di produzione o la risoluzione di un problema che comporta e i dati sensibili.

Un modo per risolvere questo problema è fornire privilegio just-in-time l'accesso privilegiato, ovvero per fornire accesso privilegiato solo se necessario. Un'idea chiave di la gestione dell'accesso privilegiato just-in-time è distinguere tra la gestione access e idonei:

  • L'accesso permanente rimane valido finché non lo revochi. Seguendo i principi del privilegio minimo, è meglio limitare l'accesso permanente e fornirgli solo solo ai pochi utenti.
  • L'accesso idoneo non viene applicato immediatamente. Al contrario, un utente che è stato gli è stato concesso l'accesso idoneo a un progetto deve attivare esplicitamente tale accesso prima di poter accedere al progetto. Devono anche fornire una giustificazione per questo. Una volta attivato l'accesso dell'utente, scade automaticamente dopo un breve periodo.

L'uso della gestione degli accessi con privilegi just-in-time può aiutarti a svolgere le seguenti:

  • Riduci il rischio di modifiche o eliminazioni accidentali Google Cloud. Ad esempio, quando gli utenti hanno accesso privilegiato solo quando necessario, aiuta a impedire l'esecuzione di script in altri momenti incidere involontariamente sulle risorse che non dovrebbero poter modificare.
  • Crea un audit trail che indichi perché sono stati attivati i privilegi.
  • Eseguire controlli e revisioni per analizzare le attività passate.

Utilizzare l'accesso just-in-time per implementare l'accesso con privilegi

Accesso Just-in-Time è un'applicazione open source progettata per essere eseguita su App Engine o Cloud Run. consente di implementare l'accesso privilegiato just-in-time a Google Cloud Google Cloud. L'applicazione consente ad amministratori, utenti e revisori le seguenti attività:

  • Gli amministratori possono concedere un ruolo a un utente o a un gruppo idoneo aggiungendo quanto segue Condizione IAM:

    has({}.jitAccessConstraint)
    
  • Gli utenti possono cercare i progetti e i ruoli a cui sono idonei l'accesso utilizzando l'applicazione Just-In-Time Access.

    Il seguente screenshot dell'applicazione Just-In-Time Access mostra un elenco dei ruoli a cui un utente è idoneo in un progetto:

    Screenshot dell'applicazione Just-in-Time Access che mostra due ruoli idonei e uno attivato.

    Può quindi attivare uno o più ruoli e fornire una giustificazione per ottenere l'accesso:

    Screenshot dell'applicazione Accesso giustificato che mostra il modulo per l'inserimento di una giustificazione.

    Dopo che l'utente ha attivato un ruolo, Accesso Just-in-Time concede all'utente l'accesso temporaneo al progetto.

  • Gli revisori possono utilizzare Cloud Logging per verificare quando e perché sono idonei ruoli attivati dagli utenti.

Per proteggere l'applicazione da accessi non autorizzati, il campo Just-in-Time Access è possibile accedere all'applicazione solo Identity-Aware Proxy (IAP). Grazie a IAP, un amministratore può stabilire quali utenti autorizzati ad accedere a Just-In-Time e quali condizioni aggiuntive che questi utenti devono soddisfare per ottenere l'accesso.

Prima di iniziare

Prima di eseguire il deployment dell'applicazione Just-in-Time Access, devi decidere quale Parte della gerarchia delle risorse, vuoi gestire i privilegi just-in-time l'accesso. Puoi gestire l'accesso per le seguenti risorse:

  • Un singolo progetto
  • Una cartella che contiene più progetti
  • Tutti i progetti della tua organizzazione

Per completare il deployment, hai bisogno di quanto segue:

  • Accesso come super amministratore all'account Cloud Identity o Google Workspace che corrisponde all'organizzazione Google Cloud che stai utilizzando.
  • Autorizzazione a modificare il criterio IAM del progetto, della cartella o dell'organizzazione che vuoi gestire con l'accesso just-in-time.
  • Un secondo utente di Cloud Identity o Google Workspace che puoi utilizzare per per testare l'accesso.

Devi anche avere un progetto Google Cloud per eseguire il deployment dell'accesso Just-In-Time per l'applicazione.

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

Esegui il deployment dell'accesso just-in-time

Questa sezione descrive come eseguire il deployment del modello Just-in-Time Accedi all'applicazione ad App Engine o Cloud Run.

Deployment dell'applicazione Just-In-Time Access in Cloud Run richiede una configurazione più complessa rispetto al deployment in App Engine. Ti consigliamo quindi di utilizzare App Engine a meno che tu non stia eseguendo il deployment in una regione che non supporta App Engine, se non puoi usare App Engine per altri motivi.

Il codice per l'accesso Just-In-Time si trova in un repository GitHub.

In questa sezione si presuppone che tu sia un amministratore.

Configura il tuo progetto Google Cloud

  1. Nella console Google Cloud, passa al tuo progetto e abilita le API richieste:

    App Engine

    Abilita le API Cloud Asset Inventory, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Build, Identity and Access Management, and Directory.

    Abilita le API

    Cloud Run

    Abilita le API Cloud Asset Inventory, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Run, Compute Engine, Identity and Access Management, and Directory.

    Abilita le API

  2. Apri Cloud Shell.

    Apri Cloud Shell

  3. Imposta una variabile di ambiente che contenga ID progetto:

    gcloud config set project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

  4. Crea un account di servizio per l'applicazione Just-in-Time Access:

    SERVICE_ACCOUNT=$(gcloud iam service-accounts create jitaccess --display-name "Just-In-Time Access" --format "value(email)")
    
  5. Consenti all'applicazione di creare token utilizzando il proprio account di servizio concedendo all'applicazione Ruolo Creatore token account di servizio (roles/iam.serviceAccountTokenCreator):

    gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT \
      --member "serviceAccount:$SERVICE_ACCOUNT" \
      --role "roles/iam.serviceAccountTokenCreator"
    

    L'applicazione utilizza l'autorizzazione per creare token per accedere API Directory e, facoltativamente, di gestire flussi di lavoro di approvazione da più parti.

Concedi all'applicazione Just-in-Time Access l'autorizzazione per gestire le associazioni IAM

Ora concedi il ruolo di Amministratore IAM progetto all'account di servizio dell'applicazione. Questo ruolo consente all'applicazione di accesso Just-In-Time di creare Associazioni IAM quando deve concedere l'accesso just-in-time.

Poiché il ruolo Amministratore IAM progetto dispone di privilegi elevati, devi limitare l'accesso all'account di servizio dell'applicazione e al progetto che la contiene.

Segui queste linee guida:

  • Limita il numero di utenti che possono accedere al progetto ed evita concedendo a qualsiasi utente il ruolo Proprietario o Editor.
  • Limita il numero di utenti che possono impersonare l'account di servizio. La che devono poter eseguire il furto d'identità, sono coloro che dispongono del nel ruolo Utente account di servizio o nel ruolo Creatore token account di servizio.

Per concedere il ruolo Amministratore IAM progetto all'account di servizio, esegui le seguenti:

  1. Concedi il ruolo di Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin) e Ruolo Visualizzatore di asset cloud (roles/cloudasset.viewer) per la parte del gerarchia delle risorse per cui vuoi gestire l'accesso con privilegi just-in-time:

    Progetto

    SCOPE_ID=RESOURCE_PROJECT_ID
    SCOPE_TYPE=projects
    
    gcloud projects add-iam-policy-binding $SCOPE_ID \
        --member "serviceAccount:$SERVICE_ACCOUNT" \
        --role "roles/resourcemanager.projectIamAdmin" \
        --condition None
    
    gcloud projects add-iam-policy-binding $SCOPE_ID \
        --member "serviceAccount:$SERVICE_ACCOUNT" \
        --role "roles/cloudasset.viewer" \
        --condition None
    

    Sostituisci RESOURCE_PROJECT_ID con l'ID del Il progetto Google Cloud per il quale vuoi gestire l'accesso. Questo progetto è diversa da quella per cui stai eseguendo il deployment dell'accesso Just-In-Time.

    Cartella

    SCOPE_ID=RESOURCE_FOLDER_ID
    SCOPE_TYPE=folders
    
    gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \
        --member "serviceAccount:$SERVICE_ACCOUNT" \
        --role "roles/resourcemanager.projectIamAdmin" \
        --condition None
    gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \
        --member "serviceAccount:$SERVICE_ACCOUNT" \
        --role "roles/cloudasset.viewer" \
        --condition None
    

    Sostituisci RESOURCE_FOLDER_ID con l'ID della cartella in cui contiene i progetti per i quali vuoi gestire l'accesso.

    Organizzazione

    SCOPE_ID=ORGANIZATION_ID
    SCOPE_TYPE=organizations
    
    gcloud organizations add-iam-policy-binding $SCOPE_ID \
        --member "serviceAccount:$SERVICE_ACCOUNT" \
        --role "roles/resourcemanager.projectIamAdmin" \
        --condition None
    gcloud organizations add-iam-policy-binding $SCOPE_ID \
        --member "serviceAccount:$SERVICE_ACCOUNT" \
        --role "roles/cloudasset.viewer" \
        --condition None
    

    Sostituisci ORGANIZATION_ID con ID della tua organizzazione.

Concedi l'accesso per consentire all'applicazione di risolvere le iscrizioni ai gruppi

L'applicazione Just-in-Time Access ti consente di concedere l'accesso idoneo a un un utente specifico o a un intero gruppo. Per valutare le iscrizioni ai gruppi, il l'applicazione deve disporre dell'autorizzazione per leggere le informazioni sulle iscrizioni ai gruppi dal tuo un account Cloud Identity o Google Workspace.

Concedere all'account di servizio dell'applicazione l'autorizzazione di accesso al gruppo di lettura. ad esempio, segui questi passaggi:

  1. Apri l'app Console di amministrazione Google e accedi come utente super amministratore.

  2. Vai ad Account > Ruoli amministratore:

    Vai a Ruoli amministratore

  3. Fai clic su Lettore di gruppi > Amministratori.

  4. Fai clic su Assegna account di servizio.

  5. Inserisci il seguente indirizzo email:

    jitaccess@PROJECT_ID.iam.gserviceaccount.com
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud.

  6. Fai clic su Aggiungi.

  7. Fai clic su Assegna ruolo.

Cerca l'ID cliente del tuo account Cloud Identity o Google Workspace

Per valutare le iscrizioni ai gruppi utilizzando l'API Directory: l'applicazione Just-in-Time Access richiede la tua ID cliente dell'account Google Workspace. Per cercare questo ID, esegui la seguenti:

  1. Nella Console di amministrazione Google, vai ad Account > Impostazioni account:

    Vai a Impostazioni account

  2. Copia l'ID cliente del tuo account. L'ID cliente inizia con C.

    Dovrai utilizzare l'ID cliente in un passaggio successivo.

  3. Chiudi la Console di amministrazione.

Esegui il deployment dell'applicazione

Ora puoi eseguire il deployment dell'applicazione Just-in-Time Access in in App Engine o Cloud Run.

App Engine

Per eseguire il deployment dell'applicazione Just-In-Time Access in App Engine, segui questi passaggi.

  1. In Cloud Shell, imposta una variabile di ambiente che contenga il tuo ID cliente dell'account Cloud Identity o Google Workspace:

    ACCOUNT_CUSTOMER_ID=CUSTOMER_ID
    

    Sostituisci CUSTOMER_ID con l'ID cliente che hai cercato in precedenza.

  2. Crea un'applicazione App Engine:

    gcloud app create --region LOCATION
    

    Sostituisci LOCATION con un località App Engine supportata.

  3. Concedi all'account di servizio predefinito di App Engine Writer Create-on-push Artifact Registry (roles/artifactregistry.createOnPushWriter) e Storage Admin (roles/storage.admin) per consentire ad App Engine per utilizzare Artifact Registry.

    PROJECT_ID=$(gcloud config get-value core/project)
    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member "serviceAccount:$PROJECT_ID@appspot.gserviceaccount.com" \
        --role "roles/artifactregistry.createOnPushWriter" \
        --condition None
    gcloud projects add-iam-policy-binding $PROJECT_ID\
        --member "serviceAccount:$PROJECT_ID@appspot.gserviceaccount.com" \
        --role "roles/storage.admin" \
        --condition None
    
  4. Clona il Repository GitHub e passa al ramo latest:

    git clone https://github.com/GoogleCloudPlatform/jit-access.git
    cd jit-access/sources
    git checkout latest
    
  5. Crea un file di configurazione per l'applicazione Just-In-Time Access:

    cat << EOF > app.yaml
    
    runtime: java17
    instance_class: F2
    service_account: $SERVICE_ACCOUNT
    env_variables:
        RESOURCE_SCOPE: $SCOPE_TYPE/$SCOPE_ID
        RESOURCE_CATALOG: AssetInventory
        RESOURCE_CUSTOMER_ID: $ACCOUNT_CUSTOMER_ID
        ACTIVATION_TIMEOUT: 60
        JUSTIFICATION_HINT: "Bug or case number"
        JUSTIFICATION_PATTERN: ".*"
    EOF
    

    In questo file di configurazione, puoi personalizzare i valori delle variabili. Per un elenco delle impostazioni, vedi Opzioni di configurazione nel repository GitHub associato.

  6. Esegui il deployment dell'applicazione:

    gcloud app deploy --appyaml app.yaml
    

    Prendi nota di target url nell'output. Questo sarà l'URL pubblico dell'applicazione Just-in-Time Access.

    Se viene visualizzato il messaggio di errore NOT_FOUND: Unable to retrieve P4SA, riprova il comando.

Cloud Run

Per eseguire il deployment dell'applicazione Just-In-Time Access in Cloud Run: segui questi passaggi.

  1. In Cloud Shell, imposta una variabile di ambiente che contenga il tuo ID cliente dell'account Cloud Identity o Google Workspace:

    ACCOUNT_CUSTOMER_ID=CUSTOMER_ID
    

    Sostituisci CUSTOMER_ID con l'ID cliente che hai cercato in precedenza.

  2. Seleziona una regione in cui eseguire il deployment:

    gcloud config set run/region REGION
    

    Sostituisci REGION con una regione che supporta Cloud Run.

  3. Crea un servizio di backend:

    gcloud compute backend-services create jitaccess-backend \
      --load-balancing-scheme=EXTERNAL \
      --global
    

    In seguito, utilizzerai questo servizio di backend per configurare un bilanciatore del carico IAP.

  4. Clona il Repository GitHub e passa al ramo latest:

    git clone https://github.com/GoogleCloudPlatform/jit-access.git
    cd jit-access/sources
    git checkout latest
    
  5. Crea l'applicazione ed esegui il push dell'immagine container su Container Registry:

    PROJECT_ID=$(gcloud config get-value core/project)
    
    docker build -t gcr.io/$PROJECT_ID/jitaccess:latest .
    docker push gcr.io/$PROJECT_ID/jitaccess:latest
    
  6. Crea un file di configurazione per l'applicazione Just-In-Time Access:

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format 'value(projectNumber)')
    REGION=$(gcloud config get-value run/region)
    IAP_BACKEND_SERVICE_ID=$(gcloud compute backend-services describe jitaccess-backend --global --format 'value(id)')
    
    cat << EOF > app.yaml
    
    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: jitaccess
      namespace: $PROJECT_NUMBER
      labels:
        cloud.googleapis.com/location: $REGION
      annotations:
        run.googleapis.com/ingress: internal-and-cloud-load-balancing
    spec:
      template:
        spec:
          serviceAccountName: $SERVICE_ACCOUNT
          containers:
          - image: gcr.io/$PROJECT_ID/jitaccess:latest
            env:
            - name: RESOURCE_SCOPE
              value: "$SCOPE_TYPE/$SCOPE_ID"
            - name: RESOURCE_CATALOG
              value: "AssetInventory"
            - name: RESOURCE_CUSTOMER_ID
              value: "$ACCOUNT_CUSTOMER_ID"
            - name: ACTIVATION_TIMEOUT
              value: "60"
            - name: JUSTIFICATION_HINT
              value: "Bug or case number"
            - name: JUSTIFICATION_PATTERN
              value: ".*"
            - name: IAP_BACKEND_SERVICE_ID
              value: "$IAP_BACKEND_SERVICE_ID"
    EOF
    
    

    In questo file di configurazione, puoi personalizzare i valori delle variabili. Per un elenco delle impostazioni, vedi Opzioni di configurazione nel repository GitHub associato.

  7. Esegui il deployment dell'applicazione:

    gcloud run services replace app.yaml
    

Configura un bilanciatore del carico

Ora devi configurare un bilanciatore del carico per l'applicazione Just-In-Time Access.

App Engine

App Engine configura automaticamente il bilanciatore del carico.

Cloud Run

Configura un bilanciatore del carico HTTPS per il tuo servizio Cloud Run:

  1. Prenotare un indirizzo IP esterno statico per il bilanciatore del carico:

    gcloud compute addresses create jitaccess-ip --global
    
  2. Crea un certificato SSL gestito per il bilanciatore del carico:

    gcloud compute ssl-certificates create jitaccess \
      --domains PUBLIC_FQDN \
      --global
    

    dove PUBLIC_FQDN è il nome di dominio completo pubblico (FQDN) che vuoi utilizzare, ad esempio jitaccess.example.com.

  3. Cerca l'indirizzo IP del bilanciatore del carico:

    gcloud compute addresses describe jitaccess-ip \
      --global \
      --format=value\(address\)
    
  4. Crea un record A DNS nella tua zona DNS pubblica che rimandi agli Indirizzo IP del bilanciatore del carico. Il nome completo del DNS deve corrispondere al nome che hai utilizzato per il certificato SSL.

  5. Creare un gruppo di endpoint di rete serverless per il servizio Cloud Run e connetterlo al backend servizio:

    gcloud compute network-endpoint-groups create jitaccess \
      --region $(gcloud config get-value run/region) \
      --network-endpoint-type=serverless  \
      --cloud-run-service jitaccess
    gcloud compute backend-services add-backend jitaccess-backend \
      --global \
      --network-endpoint-group jitaccess \
      --network-endpoint-group-region $(gcloud config get-value run/region)
    
  6. Crea un frontend del bilanciatore del carico che utilizza l'indirizzo IP esterno e inoltra il traffico al servizio di backend:

    gcloud compute url-maps create jitaccess \
      --default-service jitaccess-backend
    gcloud compute target-https-proxies create jitaccess-proxy \
      --ssl-certificates jitaccess \
      --url-map jitaccess
    gcloud compute forwarding-rules create jitaccess-https \
      --load-balancing-scheme EXTERNAL \
      --address jitaccess-ip \
      --target-https-proxy jitaccess-proxy \
      --global \
      --ports=443
    

Configura Identity-Aware Proxy

Ora devi configurare IAP per l'applicazione di accesso Just-In-Time.

  1. In Cloud Shell, configura una schermata per il consenso OAuth:

    gcloud iap oauth-brands create \
        --application_title "Just-In-Time Access" \
        --support_email=$(gcloud config get core/account)
    
  2. Nella console Google Cloud, vai a Sicurezza &gt; Identity-Aware Proxy.

    Vai a IAP

  3. Imposta IAP su attivato.

Ora devi definire quali utenti sono autorizzati ad accedere all'accesso Just-In-Time un'applicazione. Puoi concedere l'accesso a singoli utenti, gruppi o un l'intero dominio.

  1. Nella console Google Cloud, vai a IAM e Amministratore &gt; IAM.

    Vai a IAM

  2. Fai clic su Concedi l'accesso e imposta i seguenti valori:

    1. Nell'elenco delle entità, seleziona un utente, un gruppo o un dominio.
    2. Nell'elenco dei ruoli, seleziona Utente app web con protezione IAP.

    Il ruolo Utente app web con protezione IAP consente agli utenti di aprire l'applicazione Just-In-Time Access, ma il ruolo non gli consente di accedere ad alcuna risorse aggiuntive.

  3. Fai clic su Salva.

L'applicazione dell'associazione del ruolo potrebbe richiedere alcuni minuti.

App Engine

La configurazione IAP è ora completa.

Cloud Run

Per completare la configurazione IAP, concedi il ruolo Invoker di Cloud Run (roles/run.invoker) alla agente di servizio usato da IAP:

PROJECT_NUMBER=$(gcloud projects list \
  --filter $(gcloud config get-value project) \
  --format "value(PROJECT_NUMBER)")

gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \
  --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-iap.iam.gserviceaccount.com" \
  --role "roles/run.invoker"

Testa l'accesso just-in-time

Ora puoi testare la procedura per concedere l'accesso idoneo e procedura di utilizzo dell'applicazione Just-In-Time Access per attivare l'accesso idoneo.

Concedi l'accesso idoneo

Per iniziare, concedi l'accesso idoneo a un secondo account Cloud Identity Utente di Google Workspace.

  1. Nella console Google Cloud, utilizza l'elenco dei progetti per selezionare una che fa parte della gerarchia delle risorse gestita Applicazione Just-In-Time Access.
  2. Nella pagina IAM, fai clic su Concedi l'accesso.
  3. Inserisci l'indirizzo email della tua seconda identità Cloud Identity oppure utente di Google Workspace e seleziona un ruolo come Progetto &gt; Browser.
  4. Fai clic su Aggiungi condizione.
  5. Inserisci un titolo, ad esempio Eligible for JIT access.
  6. Seleziona Editor condizioni e inserisci la seguente espressione CEL:

    has({}.jitAccessConstraint)
    
  7. Salva le modifiche.

Attiva l'accesso

Ora puoi cambiare utente e richiedere l'accesso temporaneo a una risorsa.

  1. Apri una finestra in incognito nel browser e vai all'URL del l'applicazione di accesso just-in-time che hai annotato in precedenza.
  2. Accedi con l'account dell'utente a cui hai concesso l'accesso idoneo.
  3. Nell'applicazione Just-in-Time Access, seleziona un ruolo e una risorsa che per cui vuoi attivare l'accesso.
  4. Inserisci una giustificazione, ad esempio testing, e fai clic su Richiedi accesso.

    Nella pagina successiva, vedrai che l'accesso è stato temporaneamente attivato.

Analisi dei log

Ora puoi tornare all'utente amministrativo e rivedere il log.

  1. Nella console Google Cloud, vai a Logging &gt; Esplora log.

    Vai a Esplora log

  2. Imposta Mostra query su attivata.

  3. Inserisci la seguente query:

    labels.event="api.activateRole"
    
  4. Fai clic su Esegui query.

    L'output è simile al seguente:

    {
    "textPayload": "User EMAIL activated role 'ROLE' on '//cloudresourcemanager.googleapis.com/projects/PROJECT_ID' for themselves",
    "severity": "INFO",
    "labels": {
        "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "event": "api.activateRole",
        "role": "ROLE",
        "clone_id": "00c6...",
        "user": "EMAIL",
        "justification": "testing",
        ...
      },
    ...
    }
    

    Tieni presente che è stato creato un record di log per ogni ruolo attivato. Il record di log include un set di etichette che puoi utilizzare per creare filtri corretti.

Esegui l'upgrade dell'accesso Just-in-Time

Questa sezione descrive come eseguire l'upgrade di un sistema Just-In-Time esistente Accedi al deployment per usare una versione più recente dell'applicazione o per usare un configurazione.

In questa sezione si presuppone che tu sia un amministratore.

  1. Nella console Google Cloud, passa al tuo progetto e apri in Cloud Shell.

    Apri Cloud Shell

  2. Imposta una variabile di ambiente che contenga ID progetto:

    gcloud config set project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto.

  3. Clona il Repository GitHub e passa al ramo latest:

    git clone https://github.com/GoogleCloudPlatform/jit-access.git
    cd jit-access/sources
    git checkout latest
    
  4. Scarica il file di configurazione che hai utilizzato in precedenza per il deployment e la salvi in un file app.yaml:

    App Engine

    APPENGINE_VERSION=$(gcloud app versions list --service default --hide-no-traffic --format "value(version.id)")
    APPENGINE_APPYAML_URL=$(gcloud app versions describe $APPENGINE_VERSION --service default --format "value(deployment.files.'app.yaml'.sourceUrl)")
    
    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" $APPENGINE_APPYAML_URL -o app.yaml
    cat app.yaml
    

    Se il download del file app.yaml non va a buon fine, puoi scaricare il file configurazione nella console Google Cloud.

    Cloud Run

    gcloud config set run/region REGION
    gcloud run services describe jitaccess --format yaml > app.yaml
    

    Sostituisci REGION con la regione che contiene il tuo deployment di Cloud Run esistente.

  5. Se vuoi apportare modifiche alla configurazione, modifica il file app.yaml. Per un elenco delle impostazioni, vedi Opzioni di configurazione. nel repository GitHub associato.

  6. Esegui il deployment dell'applicazione:

    App Engine

    sed -i 's/java11/java17/g' app.yaml
    gcloud app deploy --appyaml app.yaml
    

    Cloud Run

    PROJECT_ID=$(gcloud config get-value core/project)
    
    docker build -t gcr.io/$PROJECT_ID/jitaccess:latest .
    docker push gcr.io/$PROJECT_ID/jitaccess:latest
    
    IMAGE=$(docker inspect --format='{{index .RepoDigests 0}}'  gcr.io/$PROJECT_ID/jitaccess)
    sed -i "s|image:.*|image: $IMAGE|g" app.yaml
    
    gcloud run services replace app.yaml
    

Passaggi successivi