Crea policy di accesso unificato IAM

Puoi creare policy di accesso unificato (UAP) di Identity and Access Management (IAM) che regolano la comunicazione tra agenti e risorse di destinazione, come registri degli agenti, server MCP, agenti ed endpoint registrati e non registrati.

Agent Gateway utilizza Identity-Aware Proxy (IAP) per valutare e applicare le UAP.

Nella console Google Cloud , puoi utilizzare la pagina Policy per creare UAP IAM di Agent Gateway. Le UAP possono contenere regole di autorizzazione, regole di negazione o entrambe.

Puoi utilizzare Google Cloud CLI, l'API REST o Terraform per creare UAP IAM e associarli ai progetti che contengono le tue istanze di Agent Gateway.

Per scoprire come aggiornare ed eliminare gli UAP, consulta Gestisci gli UAP IAM.

Prima di iniziare

Prima di creare un UAP IAM, segui questi passaggi:

  1. Devi disattivare l'applicazione del vincolo gestito Disabilita l'accesso alle risorse tramite policy di associazione (constraints/iam.managed.disableAccessPolicyBindings). Per impostazione predefinita, questo vincolo booleano è abilitato per le nuove organizzazioni e impedisce di associare una policy di accesso all'API IAM v3 a una risorsa. Per saperne di più, consulta Aggiornamento delle policy con regole booleane.

  2. Configurare un progetto di fatturazione Google Cloud .

  3. Abilita le API richieste:

    gcloud services enable \
        agentregistry.googleapis.com \
        aiplatform.googleapis.com \
        iam.googleapis.com \
        networkservices.googleapis.com
    
  4. Assicurati di aver configurato un Agent Gateway e IAP utilizzando una policy IAP v2. Ti consigliamo di configurare inizialmente Agent Gateway in modalità dry run. Per saperne di più su Agent Gateway, consulta la panoramica di Agent Gateway.

  5. Compila il tuo Agent Registry con le risorse di destinazione, come agenti, server MCP ed endpoint.

  6. Determina le identità degli agenti di origine per cui vuoi gestire l'accesso. Per gestire l'accesso da un intero registry utilizzando la console Google Cloud , seleziona il progetto che contiene il registry.

  7. Consulta le best practice per IAP e UAP.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare Agent Platform per gli agenti AI, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:

  • Crea istanze di Agent Gateway: IAP Policy Admin (roles/iap.admin) o Network Security Admin (roles/networksecurity.admin)
  • Creare e associare UAP: Access Policy Admin (roles/iam.accessPolicyAdmin)
  • Associazione della policy a un progetto: Project IAM Admin (roles/resourcemanager.projectIamAdmin)

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea UAP IAM

I criteri di accesso degli utenti consentono di configurare più regole. Ogni regola può avere un effetto di autorizzazione o di negazione.

Crea un criterio di accesso utente con una regola di autorizzazione

Puoi creare un UAP con una regola di autorizzazione utilizzando la consoleGoogle Cloud , gcloud CLI, l'API REST o Terraform.

Console

Per creare uno UAP nella console Google Cloud , procedi come segue:

  1. Nella console Google Cloud , vai alla pagina Policy:

    Vai a Policy

  2. Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
  3. Per aggiungere un criterio di accesso utente IAM per il traffico in uscita di Agent Gateway, fai clic su Crea.
  4. In Dettagli policy, segui questi passaggi:
    1. Fai clic sul campo Policy.
    2. Nell'elenco a discesa, seleziona Crea nuova policy.
    3. Nel campo Nome policy, inserisci il nome della policy. L'ID della policy viene generato automaticamente in base al nome della policy.
    4. (Facoltativo) Fai clic su Modifica per modificare l'ID policy. Nel campo ID policy, puoi modificare il nome dell'ID policy.
    5. In Aggiungi regole, espandi la regola predefinita, Regola 1 o fai clic su Aggiungi una regola.
  5. Crea una o più regole per la tua UAP. Visualizza esempi di norme diverse.
  6. Per creare la policy, fai clic su Crea.

Dopo aver salvato la policy, si verifica quanto segue:

  • L'autorizzazione IAM iap.resources.egressViaIAP viene concessa alle entità nella policy.

  • La policy viene associata automaticamente al progetto selezionato.

  • Tutte le istanze di Agent Gateway in questo progetto possono applicare qualsiasi policy associata al progetto.

gcloud

Per creare un UAP in gcloud CLI, segui questi passaggi:

  1. Crea un file delle policy in formato JSON. Le policy di accesso utente possono contenere una o più regole. Ogni regola controlla l'accesso di una o più entità dell'agente a una o più risorse di destinazione.

    [
      {
        "description": "RULE_DESCRIPTION",
        "effect": "RULE_EFFECT",
        "principals": [
          AGENT_PRINCIPALS
        ],
        "operation": {
          "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
        },
        
        "conditions": {
          "iap.googleapis.com": {
            "expression": "CEL_EXPRESSION"
          }
        }
        
      }
    ]
    

    Sostituisci quanto segue:

    • RULE_DESCRIPTION: la descrizione della regola
    • RULE_EFFECT: l'effetto della regola, che è ALLOW o DENY
    • AGENT_PRINCIPALS: le entità per l'identità dell'agente di origine. Le entità dell'agente possono essere un array di una o più entità singole o set di entità:
      • Identità degli agenti integrate: principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIER

        La struttura di AGENT_UNIQUE_IDENTIFIER dipende dal servizio Google Cloud che ospita l'agente:

        • Agent Runtime (Reasoning Engine): principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-agent
        • Gemini Enterprise (Discovery Engine): principal://agents.global.org-123456789012.system.id.goog/resources/discoveryengine/projects/9876543210/locations/global/engines/my-engine/assistants/default_assistant/agents/default/core_assistant
        • Cloud Run (identità agente): principal://agents.global.org-123456789012.system.id.goog/resources/run/projects/9876543210/locations/us-central1/services/my-cloud-run-agent

        Sostituisci quanto segue:

        • TRUST_DOMAIN: il dominio di attendibilità del progetto o dell'organizzazione che contiene l'entità dell'agente (ad esempio, agents.global.org-ORGANIZATION_ID.system.id.goog o agents.global.proj-PROJECT_NUMBER.system.id.goog)
        • AGENT_UNIQUE_IDENTIFIER: il percorso URI della risorsa dell'istanza dell'agente
      • Federazione delle identità per i workload (agenti personalizzati o esterni): principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT, ad esempio principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-agent-identity/subject/ns/default/sa/my-agent

        Sostituisci quanto segue:

        • PROJECT_NUMBER: il numero del progetto che contiene il pool di identità del workload
        • POOL_ID: l'ID del pool di identità del workload
        • SUBJECT: l'identificatore del soggetto dell'entità dell'agente
    • CONDITION: il parametro della condizione, formattato come segue:
      "conditions": {
        "iap.googleapis.com": {
          "expression": "CEL_EXPRESSION"
        }
      }
      

      Sostituisci CEL_EXPRESSION con un'espressione condizionale, ad esempio:

      "destination.agent_registry.mcp_server.name == 'projects/corp-apim-prod/locations/us-east1/mcpServers/finance-data-service' && destination.agent_registry.mcp_server.tool.name == 'updateRecord'"
      

      Questa espressione deve essere un'espressione CEL valida. Per consentire l'accesso, deve essere valutata come true.

    In tutte le policy in uscita dell'agente, devi impostare l'autorizzazione su iap.resources.egressViaIAP.

    Per saperne di più, consulta Regole UAP e Policy di esempio.

  2. Per creare l'UAP, esegui questo comando:

    gcloud iam access-policies create POLICY_NAME \
        --details-rules=POLICY_FILE \
        --project=PROJECT_ID \
        --location=global
    

    Sostituisci quanto segue:

    • POLICY_NAME: il nome della policy
    • POLICY_FILE: il percorso del file di policy, ad esempio: my-policy.json
    • PROJECT_ID: l'ID progetto che contiene la policy

API REST

Per creare e associare una policy utilizzando l'API REST, segui questi passaggi:

  1. Salva i dettagli della policy in formato JSON in un file denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          RULES
        ]
      }
    }
    

    Sostituisci RULES con una o più regole.

  2. Per creare la policy di accesso utente, invia una richiesta POST all'endpoint accessPolicies:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy

Terraform

Per creare in modo dichiarativo una policy di accesso utente e associarla al progetto che ospita l'Agent Gateway, configura le risorse google_iam_project_access_policy e google_iam_projects_policy_binding:

resource "google_iam_project_access_policy" "agent_egress_policy" {
project          = "PROJECT_ID"
location         = "global"
access_policy_id = "POLICY_NAME"
display_name     = "POLICY_DISPLAY_NAME"

details {
  rules {
    effect      = "ALLOW"
    description = "Allow runtime agents to call registered MCP tool"

    principals = [
      "principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/AGENT_RUNTIME_PROJECT_NUMBER"
    ]

    operation {
      permissions = ["iap.googleapis.com/resources.egressViaIAP"]
    }

    conditions {
      service    = "iap.googleapis.com"
      expression = "destination.agent_registry.mcp_server.name == 'projects/PROJECT_ID/locations/REGION/mcpServers/MCP_SERVER_ID' && destination.agent_registry.mcp_server.tool.name == 'TOOL_NAME'"
    }
  }
}
}

resource "google_iam_projects_policy_binding" "agent_egress_binding" {
project           = "PROJECT_ID"
location          = "global"
policy_binding_id = "POLICY_BINDING_ID"
policy_kind       = "ACCESS"
policy            = "projects/PROJECT_ID/locations/global/accessPolicies/${google_iam_project_access_policy.agent_egress_policy.access_policy_id}"

target {
  resource = "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
}
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto che ospita l'Agent Gateway e l'Agent Registry

  • POLICY_NAME: l'ID della policy di accesso

  • POLICY_DISPLAY_NAME: una descrizione leggibile della policy di accesso

  • ORGANIZATION_ID: ID organizzazione

  • AGENT_RUNTIME_PROJECT_NUMBER: il numero di progetto del progetto che ospita i tuoi agenti

  • REGION: la località del registry

  • MCP_SERVER_ID: l'ID del server MCP registrato

  • TOOL_NAME: il nome dello strumento MCP consentito

  • POLICY_BINDING_ID: l'ID dell'associazione della policy del progetto

Crea una combinazione di UAP di autorizzazione e negazione

Puoi configurare una policy di accesso utente contenente regole di autorizzazione e di negazione utilizzando la console Google Cloud , gcloud CLI e l'API REST.

Console

Per creare una policy di accesso unificato con regole di autorizzazione e di negazione nella consoleGoogle Cloud , segui questi passaggi:

  1. In Aggiungi regole, configura la regola di autorizzazione:
    1. In Descrizione regola, inserisci la descrizione della regola di autorizzazione.
    2. In Effetto regola, seleziona Consenti.
    3. Seleziona le entità dell'agente e le risorse di destinazione e aggiungi le condizioni CEL di autorizzazione.
    4. Per salvare la regola di autorizzazione, fai clic su Salva.
  2. Per aggiungere la regola di negazione, fai clic su Aggiungi una regola:
    1. In Descrizione regola, inserisci la descrizione della regola di negazione.
    2. In Effetto regola, seleziona Nega.
    3. Seleziona le entità dell'agente e le risorse di destinazione e aggiungi le condizioni CEL di negazione.
    4. Per salvare la regola di negazione, fai clic su Salva.
  3. Per creare la policy, fai clic su Crea.

gcloud

Per creare un file UAP contenente regole di autorizzazione e di negazione, segui questi passaggi:

  1. Salva quanto segue nel file delle policy in formato JSON:

    [
      {
        "description": "ALLOW_RULE_DESCRIPTION",
        "effect": "ALLOW",
        "principals": [
          "AGENT_PRINCIPALS_ALLOW"
        ],
        "operation": {
          "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
        },
        "conditions": {
          "iap.googleapis.com": {
            "expression": "CEL_EXPRESSION_ALLOW"
          }
        }
      },
      {
        "description": "DENY_RULE_DESCRIPTION",
        "effect": "DENY",
        "principals": [
          "AGENT_PRINCIPALS_DENY"
        ],
        "operation": {
          "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
        },
        "conditions": {
          "iap.googleapis.com": {
            "expression": "CEL_EXPRESSION_DENY"
          }
        }
      }
    ]
    

    Sostituisci quanto segue:

    • ALLOW_RULE_DESCRIPTION: la descrizione della regola di autorizzazione
    • DENY_RULE_DESCRIPTION: la descrizione della regola di negazione
    • AGENT_PRINCIPALS_ALLOW: le entità dell'agente che vuoi consentire, ad esempio principal://agents.global.proj-PROJECT_NUMBER.system.id.goog/resources/aiplatform/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_NAME
    • AGENT_PRINCIPALS_DENY: le entità dell'agente che vuoi negare, ad esempio principal://agents.global.proj-PROJECT_NUMBER.system.id.goog/resources/aiplatform/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_NAME
    • CEL_EXPRESSION_ALLOW: l'espressione CEL per la regola di autorizzazione, ad esempio destination.agent_registry.mcp_server.name == "projects/my-project/locations/us-east1/mcpServers/finance-data-service" && destination.agent_registry.mcp_server.tool.name == "getStatements"
    • CEL_EXPRESSION_DENY: l'espressione CEL per la regola di negazione, ad esempio destination.agent_registry.mcp_server.name == "projects/my-project/locations/us-east1/mcpServers/finance-data-service" && destination.agent_registry.mcp_server.tool.name == "updateRecord"
  2. Per creare l'UAP, esegui questo comando:

    gcloud iam access-policies create POLICY_NAME \
        --details-rules=POLICY_FILE \
        --project=PROJECT_ID \
        --location=global
    

    Sostituisci quanto segue:

    • POLICY_NAME: il nome della policy
    • POLICY_FILE: il percorso del file di policy, ad esempio: my-policy.json
    • PROJECT_ID: l'ID progetto che contiene la policy

  3. Per attivare la policy, associa la UAP al tuo progetto.

API REST

Per creare una policy di accesso unificato contenente regole di autorizzazione e di negazione utilizzando l'API REST, segui questi passaggi:

  1. Salva quanto segue in un file delle policy in formato JSON denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          {
            "description": "ALLOW_RULE_DESCRIPTION",
            "effect": "ALLOW",
            "principals": [
              "AGENT_PRINCIPALS_ALLOW"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "CEL_EXPRESSION_ALLOW"
              }
            }
          },
          {
            "description": "DENY_RULE_DESCRIPTION",
            "effect": "DENY",
            "principals": [
              "AGENT_PRINCIPALS_DENY"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "CEL_EXPRESSION_DENY"
              }
            }
          }
        ]
      }
    }
    

    Sostituisci quanto segue:

    • ALLOW_RULE_DESCRIPTION: la descrizione della regola di autorizzazione
    • DENY_RULE_DESCRIPTION: la descrizione della regola di negazione
    • AGENT_PRINCIPALS_ALLOW: le entità dell'agente che vuoi consentire
    • AGENT_PRINCIPALS_DENY: le entità dell'agente che vuoi negare
    • CEL_EXPRESSION_ALLOW: l'espressione CEL per la regola di autorizzazione
    • CEL_EXPRESSION_DENY: l'espressione CEL per la regola di negazione
  2. Per creare la policy, esegui questo comando curl:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy
  3. Per attivare la policy, associa la UAP al tuo progetto.

Associa un UAP a un progetto

Console

Dopo aver salvato la policy, si verifica quanto segue:

  • L'autorizzazione IAM iap.resources.egressViaIAP viene concessa alle entità nella policy.

  • La policy viene associata automaticamente al progetto selezionato.

  • Tutte le istanze di Agent Gateway in questo progetto possono applicare qualsiasi policy associata al progetto.

gcloud

Per associare la policy alla risorsa di destinazione, esegui questo comando:

gcloud iam policy-bindings create BINDING_NAME \
    --policy="projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME" \
    --target-resource="TARGET_RESOURCE" \
    --project=PROJECT_ID \
    --location=global

Sostituisci quanto segue:

  • BINDING_NAME: il nome dell'associazione della policy
  • PROJECT_ID: il tuo ID progetto Google Cloud
  • POLICY_NAME: il nome della policy di accesso
  • TARGET_RESOURCE: l'URI completo della risorsa per il progetto, formattato come segue:
        //cloudresourcemanager.googleapis.com/projects/PROJECT_ID
        

API REST

Per associare la policy alla risorsa di destinazione, invia una richiesta POST all'endpoint policyBindings:

curl -X POST \
  "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings?policyBindingId=BINDING_NAME" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "policy": "projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME",
    "target": {
      "resource": "TARGET_RESOURCE"
    }
  }'

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto
  • BINDING_NAME: un nome per l'associazione
  • POLICY_NAME: il nome della policy creata in precedenza in questo documento
  • TARGET_RESOURCE: l'URI completo della risorsa per la destinazione dell'associazione, che può essere uno dei seguenti:
    • Progetto: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID
    • Agent Gateway: //networkservices.googleapis.com/projects/PROJECT_ID/locations/LOCATION/agentGateways/GATEWAY_NAME

Creare regole

Le policy di accesso utente possono contenere una o più regole. Ogni regola controlla l'accesso di una o più entità dell'agente a una o più risorse di destinazione.

Console

Nella console Google Cloud , modifica la tua UAP e segui questi passaggi:

  1. Modifica la regola esistente. Per aggiungere una regola, fai clic su Aggiungi una regola.
  2. Descrizione della regola: una descrizione leggibile di questa regola
  3. Seleziona entità: le entità dell'agente di origine da cui la regola gestisce l'accesso. Le entità possono essere una delle seguenti:
    • Tutti gli agenti in questo progetto: tutti gli agenti presenti nel progetto attuale.
    • Singoli agenti: una o più entità specifiche che puoi selezionare. Gli agenti sono definiti dalle loro identità.
    • Set di entità personalizzato: uno o più set di entità che puoi specificare inserendo un identificatore di entità. Gli identificatori delle entità devono iniziare con principalSet:// e fare riferimento alle identità degli agenti.
  4. Effetto: l'effetto della regola, che può essere uno dei seguenti:
    • Consenti: consente alle entità di accedere alle risorse
    • Nega: non consente alle entità di accedere alle risorse
  5. Seleziona risorse: uno o più tipi di risorse di destinazione che puoi selezionare. I tipi di risorse includono:
    • Registry: tutte le risorse registrate in una località di Agent Registry
    • Agente: un agente di destinazione registrato in Agent Registry
    • Server MCP: un server MCP di destinazione registrato in Agent Registry. Puoi utilizzare le condizioni per controllare ulteriormente l'accesso al server MCP.

    • Endpoint: Un endpoint di destinazione registrato nel Registro degli agenti
    • Endpoint non registrato: un endpoint di destinazione non registrato in Agent Registry a cui si accede tramite un URL esterno. Puoi utilizzare le condizioni per controllare ulteriormente l'accesso degli endpoint non registrati.

gcloud

Le regole in un file in formato JSON hanno il seguente formato generale:

{
  "description": "RULE_DESCRIPTION",
  "effect": "EFFECT",
  "principals": [
    "AGENT_PRINCIPALS"
  ],
  "operation": {
    "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
  },
  "conditions": {
    "iap.googleapis.com": {
      "expression": "CONDITION"
    }
  }
}

Il file delle policy contiene quanto segue:

  • RULE_DESCRIPTION: una descrizione leggibile di questa regola
  • EFFECT: l'effetto della regola, che può essere uno dei seguenti:

  • ALLOW consente all'entità di accedere alle risorse

  • DENY non consente all'entità di accedere alle risorse

  • CONDITION: un'espressione CEL che restituisce in modo condizionale true o false. Se l'espressione restituisce true, la regola viene applicata. Le condizioni possono anche contenere riferimenti a risorse specifiche a cui le entità possono accedere:

  • destination.agent_registry: la risorsa di destinazione è registrata in Agent Registry.

  • destination.unregistered: la registrazione della risorsa di destinazione viene annullata. È accessibile tramite un URL. L'accesso può essere controllato nella condizione.

Per scoprire di più sulle condizioni, consulta Condizioni. Scopri di più sugli attributi delle condizioni in Attributi CEL.

API REST

Per creare e associare una policy utilizzando l'API REST, segui questi passaggi:

  1. Salva i dettagli della policy in formato JSON in un file denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          {
            "description": "RULE_DESCRIPTION",
            "effect": "EFFECT",
            "principals": [
              "AGENT_PRINCIPALS"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "CONDITION"
              }
            }
          }
        ]
      }
    }
    

    Aggiungi una o più regole al campo details. In ogni regola, sostituisci quanto segue:

    • RULE_DESCRIPTION: una o più regole
    • EFFECT: l'effetto della regola, che può essere uno dei seguenti:

      • ALLOW consente all'entità di accedere alle risorse

      • DENY non consente all'entità di accedere alle risorse

    • AGENT_PRINCIPALS: le entità dell'agente a cui vuoi concedere l'accesso.

    • CONDITION: un'espressione CEL che restituisce in modo condizionale true o false. Se l'espressione restituisce il valore true, la regola viene applicata. Le condizioni possono anche contenere riferimenti a risorse specifiche a cui le entità possono accedere:

      • destination.agent_registry: la risorsa di destinazione è registrata in Agent Registry.
      • destination.unregistered: la registrazione della risorsa di destinazione viene annullata. È accessibile tramite un URL. L'accesso può essere controllato nella condizione.

    Per scoprire di più sulle condizioni, consulta Condizioni. Scopri di più sugli attributi delle condizioni in Attributi CEL.

  2. Per creare la policy di accesso utente, invia una richiesta POST all'endpoint accessPolicies:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy
  3. Per associare la policy alla risorsa di destinazione, invia una richiesta POST all'endpoint policyBindings:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings?policyBindingId=BINDING_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": "projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME",
      "target": {
        "resource": "TARGET_RESOURCE"
      }
    }'
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • BINDING_NAME: un nome per l'associazione
    • POLICY_NAME: il nome della policy creata in precedenza in questo documento
    • TARGET_RESOURCE: l'URI completo della risorsa per il progetto, formattato come segue: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID

Crea condizioni

Le condizioni sono espressioni CEL booleane che determinano l'accesso delle entità dell'agente a determinate risorse.

Console

Nella console Google Cloud puoi creare condizioni seguendo questi passaggi:

  1. Nella sezione Seleziona risorse della regola, seleziona una delle seguenti schede:

    • Standard: nella scheda Standard, seleziona uno o più tipi di risorse, quindi utilizza il generatore di condizioni o l'editor delle condizioni per creare una condizione.

    • Personalizzata: nella scheda Personalizzata, puoi utilizzare l'editor delle condizioni per creare una condizione personalizzata in cui puoi utilizzare gli attributi CEL per specificare le risorse di destinazione e altre condizioni.

  2. Per salvare la condizione insieme alla regola, fai clic su Salva.

gcloud

Nel file della policy, le condizioni determinano a quali risorse di destinazione possono accedere le entità dell'agente e in quali condizioni.

Le condizioni sono definite nel campo conditions di una regola. Ad esempio:

"conditions": {
  "iap.googleapis.com": {
    "expression": "destination.agent_registry.mcp_server.name == 'projects/my-project/locations/us-east1/mcpServers/finance-data-service' && destination.agent_registry.mcp_server.tool.name == 'getStatements'"
  }
}

Per saperne di più, consulta Esempi di policy.

API REST

Nel file della policy, le condizioni determinano a quali risorse di destinazione possono accedere le entità dell'agente e in quali condizioni.

Le condizioni sono definite nel campo conditions di una regola. Ad esempio:

"conditions": {
  "iap.googleapis.com": {
    "expression": "destination.agent_registry.mcp_server.name == 'projects/my-project/locations/us-east1/mcpServers/finance-data-service' && destination.agent_registry.mcp_server.tool.name == 'getStatements'"
  }
}

Per saperne di più, consulta Esempi di policy.

Testa e verifica le UAP

Dopo aver creato e associato le policy, verifica che l'agente possa accedere alle risorse seguendo questi passaggi:

  1. Attiva le azioni degli agenti per testare le regole nella tua UAP. Assicurati di verificare che le regole con effetto di autorizzazione e quelle con effetto di negazione funzionino come previsto.

  2. Esamina gli audit log di Cloud per le voci IAP filtrando i log con la seguente query:

    protoPayload.metadata.iapPolicyVersion="v2"
    protoPayload.serviceName="iap.googleapis.com"
    resource.labels.project_id="PROJECT_ID"
    

    Sostituisci PROJECT_ID con l'ID progetto.

    Le voci di log mostrano la decisione di accesso, l'entità, la destinazione e i dettagli della valutazione dell'espressione CEL. Durante i test, ti consigliamo di utilizzare la modalità DRY_RUN in modo che le violazioni delle policy non blocchino l'accesso.

  3. Modifica le regole delle policy in base ai risultati della valutazione negli audit log.

  4. Dopo aver verificato che le regole funzionano come previsto, aggiorna i metadati dell'estensione dei servizi del gateway e imposta iamEnforcementMode su "ENFORCE".

Criteri di esempio

Di seguito sono riportati alcuni esempi di policy in uscita per le interazioni con l'entità dell'agente:

Per istruzioni sulla creazione e sull'associazione delle policy, consulta Crea UAP.

Crea un UAP da agente a registry

Una policy da agente a registry consente al tuo agente di accedere a tutti gli agenti, i server MCP e gli endpoint in una posizione specifica di Agent Registry in un progetto.

Console

Per creare una policy da agente a registry nella console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Policy:

    Vai a Policy

  2. Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
  3. In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio allow-registry-access.
  4. In Aggiungi regole, configura la regola:
    • Descrizione della regola: Allow all agents in project to access us-central1 registry
    • Effetto della regola: Consenti
    • Seleziona entità: in Set di entità, seleziona Tutti gli agenti in questo progetto.
    • Seleziona risorse: seleziona Standard > Registry e seleziona us-central1.
  5. Per salvare la regola, fai clic su Salva.
  6. Per creare la policy, fai clic su Crea.

Per scoprire come creare e associare le policy, consulta Crea policy di accesso uniforme IAM.

gcloud

La seguente policy di esempio mostra una regola UAP che consente a tutti gli agenti di un progetto di accedere a tutte le risorse di destinazione in un registry specifico:

{
  [
    {
      "description": "Allow all agents in project 9876543210 to access all destination resources in the us-central1 registry",
      "effect": "ALLOW",
      "principals": [
        "principalSet://agents.global.org-123456789012.system.id.goog/attribute.platformContainer/aiplatform/projects/9876543210"
      ],
      "operation": {
        "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
      },
      "conditions": {
        "iap.googleapis.com": {
          "expression": "destination.is_registered == true && destination.agent_registry.location == 'us-central1'"
        }
      }
    }
  ]
}

Per attivare la policy, associa la UAP al tuo progetto.

API REST

Per creare un UAP che consenta a tutti gli agenti di un progetto di accedere a tutte le risorse di destinazione in un registry specifico, segui questi passaggi:

  1. Salva quanto segue in un file delle policy in formato JSON denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          {
            "description": "Allow all agents in project 9876543210 to access all destination resources in the us-central1 registry",
            "effect": "ALLOW",
            "principals": [
              "principalSet://agents.global.org-123456789012.system.id.goog/attribute.platformContainer/aiplatform/projects/9876543210"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "destination.is_registered == true && destination.agent_registry.location == 'us-central1'"
              }
            }
          }
        ]
      }
    }
    
  2. Per creare la policy, esegui questo comando curl:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy

Per attivare la policy, associa la UAP al tuo progetto.

Attributi CEL da agente a registry

La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della regola da agente a registry:

Attributo Dettagli
destination.is_registered
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.resource_type
Tipo di valore Stringa
Valori supportati 'AGENT', 'ENDPOINT', 'MCP_SERVER', 'SKILL'
Operazioni supportate ==, !=, in
destination.agent_registry.location
Tipo di valore Stringa
Valori supportati ID località Google Cloud (ad esempio 'global', 'us-central1')
Operazioni supportate ==, !=, in
destination.agent_registry.project_id
Tipo di valore Stringa
Valori supportati ID progetto Google Cloud
Operazioni supportate ==, !=, in

Cuga un UAP in uscita da agente ad agente

Una policy da agente ad agente consente a un agente di origine di richiamare un agente di destinazione registrato in Agent Registry.

Console

Per creare una policy da agente ad agente nella console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Policy:

    Vai a Policy

  2. Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
  3. In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio allow-orchestrator-to-support-agent.
  4. In Aggiungi regole, configura la regola:
    • Descrizione della regola: Allow orchestrator agent to invoke customer-support agent
    • Effetto della regola: Consenti
    • Seleziona entità: seleziona Agenti specifici e seleziona orchestrator-agent.
    • Seleziona risorse: seleziona Standard > Agente, quindi seleziona customer-support-agent.
  5. Per salvare la regola, fai clic su Salva.
  6. Per creare la policy, fai clic su Crea.

Per attivare la policy, associa la UAP al tuo progetto.

gcloud

La seguente policy di esempio mostra una regola di autorizzazione IAM che consente a un agente orchestratore di richiamare un subagente specifico registrato nel Registro degli agenti:

{
  [
    {
      "description": "Allow orchestrator agent to invoke customer-support agent",
      "effect": "ALLOW",
      "principals": [
        "principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/orchestrator-agent"
      ],
      "operation": {
        "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
      },
      "conditions": {
        "iap.googleapis.com": {
          "expression": "destination.agent_registry.agent.name == 'projects/9876543210/locations/us-central1/agents/customer-support-agent'"
        }
      }
    }
  ]
}

Per creare e associare la policy utilizzando gcloud CLI, consulta Crea policy di accesso utente IAM.

API REST

Per creare una policy IAM con una regola di autorizzazione che consenta a un agente orchestratore di richiamare un subagente specifico registrato nel registro degli agenti, segui questi passaggi:

  1. Salva quanto segue in un file delle policy in formato JSON denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          {
            "description": "Allow orchestrator agent to invoke customer-support agent",
            "effect": "ALLOW",
            "principals": [
              "principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/orchestrator-agent"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "destination.agent_registry.agent.name == 'projects/9876543210/locations/us-central1/agents/customer-support-agent'"
              }
            }
          }
        ]
      }
    }
    
  2. Per creare la policy, esegui questo comando curl:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy

Per attivare la policy, associa la UAP al tuo progetto.

Attributi CEL da agente ad agente

La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy da agente ad agente:

Attributo Dettagli
destination.agent_registry.agent.name
Tipo di valore Stringa
Valori supportati Nome risorsa agente (projects/PROJECT_ID/locations/LOCATION/agents/AGENT_NAME)
Operazioni supportate ==, !=, in

Crea un criterio di accesso utente (UAP) in uscita da agente a server MCP

Una policy di traffico in uscita da agente a server MCP controlla l'accesso di un agente a strumenti o annotazioni specifici su un server Model Context Protocol (MCP).

Console

Per creare una policy dei server agent-to-MCP nella console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Policy:

    Vai a Policy

  2. Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
  3. In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio allow-github-read-only.
  4. In Aggiungi regole, configura la regola:
    • Descrizione della regola: Allow read-only access to GitHubTool on MCP server
    • Effetto della regola: Consenti
    • Seleziona entità: seleziona l'entità dell'agente, ad esempio my-ae-agent.
    • Seleziona risorse: seleziona la scheda Personalizzato.
    • Condizioni: nell'editor condizioni, inserisci:
      destination.agent_registry.mcp_server.tool.name == 'GitHubTool' && destination.agent_registry.mcp_server.tool.annotations.read_only_hint == true
  5. Per salvare la regola, fai clic su Salva.
  6. Per creare la policy, fai clic su Crea.

Per attivare la policy, associa la UAP al tuo progetto.

gcloud

La seguente policy di esempio mostra una regola di autorizzazione IAM che consente a un'entità dell'agente formattata per la federazione delle identità per i workload l'accesso di sola lettura a uno strumento denominato GitHubTool:

{
  [
    {
      "description": "Allow read-only access to GitHubTool on MCP server",
      "effect": "ALLOW",
      "principals": [
        "principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent"
      ],
      "operation": {
        "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
      },
      "conditions": {
        "iap.googleapis.com": {
          "expression": "destination.agent_registry.mcp_server.tool.name == 'GitHubTool' && destination.agent_registry.mcp_server.tool.annotations.read_only_hint == true"
        }
      }
    }
  ]
}

Sostituisci quanto segue:

  • POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:
  • Pool gestito da Google:PROJECT_ID.svc.id.goog
  • Pool autogestito: POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog

Per creare e associare la policy utilizzando gcloud CLI, consulta Crea policy di accesso utente IAM.

API REST

Per creare una policy di accesso IAM che consenta a un agente che utilizza la federazione delle identità per i workload l'accesso di sola lettura a uno strumento denominato GitHubTool, segui questi passaggi:

  1. Salva quanto segue in un file delle policy in formato JSON denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          {
            "description": "Allow read-only access to GitHubTool on MCP server",
            "effect": "ALLOW",
            "principals": [
              "principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "destination.agent_registry.mcp_server.tool.name == 'GitHubTool' && destination.agent_registry.mcp_server.tool.annotations.read_only_hint == true"
              }
            }
          }
        ]
      }
    }
    
  2. Per creare la policy, esegui questo comando curl:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:
    • Pool gestito da Google:PROJECT_ID.svc.id.goog
    • Pool autogestito: POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog
    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy

Per creare e associare la policy utilizzando l'API REST, consulta Crea policy di accesso utente.

Attributi CEL da agente a MCP

La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy del server da agente a MCP:

Attributo Dettagli
destination.agent_registry.mcp_server.name
Tipo di valore Stringa
Valori supportati Nome della risorsa del server MCP (projects/PROJECT_ID/locations/LOCATION/mcpServers/MCP_SERVER_NAME)
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.method
Tipo di valore Stringa
Valori supportati Nome del metodo MCP (ad esempio, 'tools', 'prompts', 'resources')
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.tool.name
Tipo di valore Stringa
Valori supportati Nome dello strumento (ad esempio, 'search_code', 'execute')
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.tool.annotations.read_only_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.tool.annotations.destructive_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.tool.annotations.idempotent_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.tool.annotations.open_world_hint
Tipo di valore Booleano
Valori supportati true, false
Operazioni supportate ==, !=
destination.agent_registry.mcp_server.prompt.name
Tipo di valore Stringa
Valori supportati Nome del prompt
Operazioni supportate ==, !=, in
destination.agent_registry.mcp_server.resource.name
Tipo di valore Stringa
Valori supportati Nome della risorsa
Operazioni supportate ==, !=, in

Crea un criterio di accesso utente (UAP) in uscita da agente a endpoint

Una policy di traffico in uscita da agente a endpoint consente a un agente di accedere a un endpoint di servizio registrato in Agent Registry.

Console

Per creare una policy da agente a endpoint nella console Google Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Policy:

    Vai a Policy

  2. Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
  3. In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio allow-translator-to-endpoint.
  4. In Aggiungi regole, configura la regola:
    • Descrizione della regola: Allow translator agent to access translation endpoint
    • Effetto della regola: Consenti
    • Seleziona entità: seleziona Agenti specifici e seleziona translator-agent.
    • Seleziona risorse: seleziona la scheda Personalizzato.
    • Condizioni: nell'editor condizioni, inserisci:
      destination.agent_registry.endpoint.name == 'projects/9876543210/locations/us-central1/endpoints/translation-service'
  5. Per salvare la regola, fai clic su Salva.
  6. Per creare la policy, fai clic su Crea.

Per attivare la policy, associa la UAP al tuo progetto.

gcloud

L'esempio seguente mostra una policy di autorizzazione IAM che consente a un agente di accedere a un endpoint di servizio registrato:

[
  {
    "description": "Allow translator agent access to registered translation endpoint",
    "effect": "ALLOW",
    "principals": [
      "principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/translator-agent"
    ],
    "operation": {
      "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
    },
    "conditions": {
      "iap.googleapis.com": {
        "expression": "destination.agent_registry.endpoint.name == 'projects/9876543210/locations/us-central1/endpoints/translation-service'"
      }
    }
  }
]

Per attivare la policy, associa la UAP al tuo progetto.

API REST

Per creare una policy di autorizzazione IAM che consenta a un agente di accedere a un endpoint di servizio registrato, segui questi passaggi:

  1. Salva quanto segue in un file delle policy in formato JSON denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          {
            "description": "Allow translator agent access to registered translation endpoint",
            "effect": "ALLOW",
            "principals": [
              "principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/translator-agent"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "destination.agent_registry.endpoint.name == 'projects/9876543210/locations/us-central1/endpoints/translation-service'"
              }
            }
          }
        ]
      }
    }
    
  2. Per creare la policy, esegui questo comando curl:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy

Per attivare la policy, associa la UAP al tuo progetto.

Attributi CEL da agente a endpoint

La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy da agente a endpoint:

Attributo Dettagli
destination.agent_registry.endpoint.name
Tipo di valore Stringa
Valori supportati Nome risorsa endpoint (projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_NAME)
Operazioni supportate ==, !=, in

Crea un criterio di accesso utente (UAP) da agente a endpoint non registrato

Una policy da agente a endpoint non registrato consente a un agente di accedere ad API ed endpoint esterni di terze parti non registrati in Agent Registry.

Console

Per creare una policy per endpoint da agente a non registrato nella consoleGoogle Cloud , segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Policy:

    Vai a Policy

  2. Nel selettore dei progetti, seleziona il progetto che contiene gli Agent Gateway che utilizzeranno l'UAP.
  3. In Dettagli policy, seleziona una policy o creane una nuova. Se stai creando una nuova policy, inserisci un nome, ad esempio allow-ocr-api-access.
  4. In Aggiungi regole, configura la regola:
    • Descrizione della regola: Allow POST access to external OCR service
    • Effetto della regola: Consenti
    • Seleziona entità: seleziona l'entità dell'agente (ad esempio my-ae-agent).
    • Seleziona risorse: seleziona Standard > Endpoint non registrato.
    • Condizioni: fai clic sulla scheda Personalizzate.
    • Nell'editor condizioni, inserisci:
      destination.unregistered.host.endsWith('example-ocr.com') && destination.unregistered.path.startsWith('/v2/process') && destination.unregistered.method == 'POST'
  5. Per salvare la regola, fai clic su Salva.
  6. Per creare la policy, fai clic su Crea.

Per attivare la policy, associa la UAP al tuo progetto.

gcloud

L'esempio seguente mostra una UAP che consente a un agente di accedere a un endpoint non registrato con un percorso che inizia con /v2/process e termina con example-ocr.com:

[
  {
    "description": "Allow POST access to unregistered OCR endpoint",
    "effect": "ALLOW",
    "principals": [
      "principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent"
    ],
    "operation": {
      "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
    },
    "conditions": {
      "iap.googleapis.com": {
        "expression": "destination.unregistered.host.endsWith('example-ocr.com') && destination.unregistered.path.startsWith('/v2/process') && destination.unregistered.method == 'POST'"
      }
    }
  }
]

Sostituisci quanto segue:

  • POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:
  • Pool gestito da Google:PROJECT_ID.svc.id.goog
  • Pool autogestito: POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog

Per attivare la policy, associa la UAP al tuo progetto.

API REST

Per creare un UAP che consenta a un agente di accedere a un endpoint non registrato con un percorso che inizia con /v2/process e termina con example-ocr.com, segui questi passaggi:

  1. Salva quanto segue in un file delle policy in formato JSON denominato agent-access-policy.json:

    {
      "details": {
        "rules": [
          {
            "description": "Allow POST access to unregistered OCR endpoint",
            "effect": "ALLOW",
            "principals": [
              "principal://iam.googleapis.com/projects/9876543210/locations/global/workloadIdentityPools/POOL_ID/subject/ns/default/sa/my-ae-agent"
            ],
            "operation": {
              "permissions": ["iap.googleapis.com/resources.egressViaIAP"]
            },
            "conditions": {
              "iap.googleapis.com": {
                "expression": "destination.unregistered.host.endsWith('example-ocr.com') && destination.unregistered.path.startsWith('/v2/process') && destination.unregistered.method == 'POST'"
              }
            }
          }
        ]
      }
    }
    
  2. Per creare la policy, esegui questo comando curl:

    curl -X POST \
    "https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @agent-access-policy.json
    

    Sostituisci quanto segue:

    • POOL_ID: l'ID del pool di identità del workload. A seconda del tipo di pool, formatta l'ID come segue:
    • Pool gestito da Google:PROJECT_ID.svc.id.goog
    • Pool autogestito: POOL_NAME.global.POOL_HOST_PROJECT_NUMBER.workload.id.goog
    • PROJECT_ID: l'ID progetto
    • POLICY_NAME: il nome della policy

Per attivare la policy, associa la UAP al tuo progetto.

Attributi CEL per endpoint non registrati da agente

La tabella seguente descrive gli attributi CEL che puoi utilizzare in una condizione della policy da agente a endpoint non registrato:

Attributo Dettagli
destination.unregistered.host
Tipo di valore Stringa
Valori supportati Nome host (ad esempio, 'google.com', 'example.com')
Operazioni supportate ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.path
Tipo di valore Stringa
Valori supportati Percorso della richiesta (ad esempio, '/admin', '/api/v1')
Operazioni supportate ==, !=, in, .startsWith(), .endsWith(), .contains()
destination.unregistered.method
Tipo di valore Stringa
Valori supportati Metodo HTTP (ad esempio 'get', 'post', 'put', 'delete')
Operazioni supportate ==, !=, in

Passaggi successivi

Panoramica

Visualizza una panoramica di Agent Gateway.

Guida

Scopri come configurare le norme relative ai contenuti e alle attività.

Guida

Scopri come testare le policy.