

# Usa gli endpoint VPC dell'interfaccia (AWS PrivateLink) per creare una connessione privata tra il tuo VPC e le tue risorse Amazon Bedrock AgentCore
<a name="vpc-interface-endpoints"></a>

Puoi utilizzarlo AWS PrivateLink per creare una connessione privata tra il tuo VPC e Amazon Bedrock. AgentCore Puoi accedere AgentCore come se fosse nel tuo VPC, senza l'uso di un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione Direct Connect. Le istanze del tuo VPC non necessitano di indirizzi IP pubblici per accedervi. AgentCore

Questa connessione privata viene stabilita creando un *endpoint di interfaccia*, alimentato da. AWS PrivateLink In ciascuna sottorete viene creata un'interfaccia di rete endpoint da abilitare per l'endpoint di interfaccia. Queste sono interfacce di rete gestite dal richiedente che fungono da punto di ingresso per il traffico destinato a AgentCore.

Per ulteriori informazioni, consulta [Accedere ai AWS servizi AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) nella * AWS PrivateLink Guida*.

## Considerazioni per AgentCore
<a name="vpc-endpoint-considerations"></a>

*Prima di configurare un endpoint di interfaccia per AgentCore, consulta [le considerazioni nella Guida](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints). AWS PrivateLink *

AgentCore fornisce tre endpoint: AWS PrivateLink 
+  **Endpoint del piano dati** - `com.amazonaws.region.bedrock-agentcore` 
+  **Endpoint del piano di controllo** - `com.amazonaws.region.bedrock-agentcore-control` 
+  **Endpoint del gateway** - `com.amazonaws.region.bedrock-agentcore.gateway` 

La tabella seguente mostra lo stato del AWS PrivateLink supporto per ogni AgentCore primitiva:


| Primitiva | Piano dati | Piano di controllo | 
| --- | --- | --- | 
| Runtime | Supportata | Supportata | 
| Memoria | Supportata | Supportata | 
| Built-in Strumenti (interprete di codice, strumento browser) | Supportata | Supportata | 
| Identità | Supportata | Supportata | 
| Gateway | Supportata | Supportata | 
| Valutazioni e ottimizzazioni | Supportata | Supportata | 
| Policy | Supportata | Supportata | 

Per un elenco delle AWS regioni in cui sono disponibili gli endpoint di AgentCore interfaccia, consulta Regioni [supportate AWS](agentcore-regions.md).

**Importante**  
Le API del piano dati supportano sia le intestazioni AWS Signature Version 4 (SigV4) per l'autenticazione che l'autenticazione Bearer Token (OAuth). Le policy degli endpoint VPC possono limitare solo i chiamanti in base ai principi IAM e non agli utenti OAuth. Affinché OAuth-based le richieste abbiano esito positivo tramite l'endpoint VPC, il principale deve essere impostato su \* nella policy dell'endpoint. Altrimenti, solo i chiamanti SigV4 nella lista consentita possono effettuare chiamate con successo sull'endpoint VPC.

 AWS Le chiavi di contesto della condizione globale IAM sono supportate. Per impostazione predefinita, l'accesso completo a AgentCore è consentito tramite l'endpoint dell'interfaccia. È possibile controllare l'accesso allegando una policy dell'endpoint all'endpoint dell'interfaccia o associando un gruppo di sicurezza alle interfacce di rete dell'endpoint.

## Crea un endpoint di interfaccia per AgentCore
<a name="vpc-endpoint-create"></a>

Puoi creare un endpoint di interfaccia per AgentCore utilizzare la console Amazon VPC o l'interfaccia a riga di comando ( AWS AWS CLI). *Per ulteriori informazioni, consulta [Creare un endpoint di interfaccia](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) nella Guida. AWS PrivateLink *

Crea un endpoint di interfaccia per AgentCore utilizzare il seguente formato di nome di servizio:
+ Tutte le primitive del piano dati (Runtime, Built-in Tools, Memory, Identity): `com.amazonaws.region.bedrock-agentcore` 
+ Per AgentCore Gateway: `com.amazonaws.region.bedrock-agentcore.gateway` 
+ Per le operazioni sul piano di controllo (gestione del runtime e della memoria): `com.amazonaws.region.bedrock-agentcore-control` 

Se abiliti il DNS privato per l'endpoint dell'interfaccia, puoi effettuare richieste API AgentCore utilizzando il nome DNS regionale predefinito. Ad esempio, `bedrock-agentcore.us-east-1.amazonaws.com`.

## Creazione di una policy dell' endpoint per l'endpoint dell'interfaccia
<a name="vpc-endpoint-policy"></a>

Una policy dell’endpoint è una risorsa IAM che è possibile allegare all’endpoint dell’interfaccia. La policy predefinita per gli endpoint consente l'accesso completo AgentCore tramite l'endpoint dell'interfaccia. Per controllare l'accesso consentito AgentCore dal tuo VPC, collega una policy endpoint personalizzata all'endpoint di interfaccia.

Una policy di endpoint specifica le informazioni riportate di seguito:
+ I principali che possono eseguire azioni (AWS account, utenti IAM e ruoli IAM).
  + Per AgentCore Gateway, se l'ingresso del gateway non è basato su [AWS Signature Version 4 (SigV4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) (ad esempio, se utilizzi invece OAuth), devi specificare il `Principal` campo come jolly \*. L'autenticazione basata su SigV4 consente di definirla come un'identità specifica. `Principal` AWS Questo vale anche per Runtime. AgentCore 
+ Le azioni che possono essere eseguite.
+ Le risorse in cui è possibile eseguire le operazioni.

Per ulteriori informazioni, consulta [Controllare l'accesso ai servizi utilizzando le policy degli endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) nella * AWS PrivateLink Guida*.

 **Politiche degli endpoint per varie primitive** 

Gli esempi seguenti mostrano le policy degli endpoint per diversi componenti: AgentCore 

**Example**  

1. La seguente policy sugli endpoint consente a principi IAM specifici di richiamare le risorse di runtime degli agenti.

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws::iam::ACCOUNT_ID:user/USERNAME"
            },
            "Action": [
               "bedrock-agentcore:InvokeAgentRuntime"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/RUNTIME_ID"
         }
      ]
   }
   ```

    **Autenticazione mista IAM e OAuth** 

   L'`InvokeAgentRuntime`API supporta due modalità di autorizzazione degli endpoint VPC. La seguente policy di esempio consente sia ai principali IAM che ai chiamanti OAuth di accedere a diverse risorse di runtime degli agenti.

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws::iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:InvokeAgentRuntime"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent1"
         },
         {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
               "bedrock-agentcore:InvokeAgentRuntime"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent2"
         }
      ]
   }
   ```

   La politica di cui sopra consente solo al principale IAM di effettuare chiamate verso. `InvokeAgentRuntime` `customAgent1` Consente inoltre sia ai principali IAM che ai chiamanti OAuth di effettuare chiamate verso. `InvokeAgentRuntime` `customAgent2`

    **Politiche degli endpoint Protected Resource Metadata (PRM)** 

   L'`GetRuntimeProtectedResourceMetadata`API implementa [OAuth 2.0 Protected Resource](https://datatracker.ietf.org/doc/html/rfc9728) Metadata (RFC 9728). I client chiamano questo endpoint *prima di* disporre delle credenziali, per scoprire quale server di autorizzazione protegge il runtime di un determinato agente. Questo endpoint non è autenticato per progettazione, quindi `Principal` deve essere impostato su \* nella policy dell'endpoint.

   Le policy degli endpoint VPC vengono applicate alle richieste PRM. Se la policy dell'endpoint non lo consente esplicitamente`bedrock-agentcore:GetRuntimeProtectedResourceMetadata`, le richieste PRM tramite quell'endpoint vengono negate con HTTP 403. Qualsiasi runtime di OAuth-configured agente a cui si accede tramite un endpoint VPC richiede l'accesso PRM per l'individuazione del server di autorizzazione.
**Nota**  
Se si dispone di una politica di negazione totale degli endpoint per l'applicazione del perimetro dei dati e non si utilizza l'autenticazione OAuth o JWT, le richieste PRM vengono rifiutate automaticamente. Non è necessaria alcuna configurazione aggiuntiva.

   La seguente policy sugli endpoint consente a qualsiasi chiamante di scoprire il server di autorizzazione (PRM) limitando al contempo le chiamate di runtime a un principale IAM specifico:

   ```
   {
      "Statement": [
         {
            "Sid": "AllowPRMDiscovery",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
               "bedrock-agentcore:GetRuntimeProtectedResourceMetadata"
            ],
            "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
         },
         {
            "Sid": "AllowInvoke",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:InvokeAgentRuntime"
            ],
            "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/RUNTIME_ID"
         }
      ]
   }
   ```

   Per bloccare le ricerche PRM tra account tramite l'endpoint VPC (applicazione del perimetro dei dati), estendi l'istruzione di autorizzazione PRM solo ai runtime del tuo account:

   ```
   {
      "Statement": [
         {
            "Sid": "AllowPRMOwnAccountOnly",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
               "bedrock-agentcore:GetRuntimeProtectedResourceMetadata"
            ],
            "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
         },
         {
            "Sid": "DenyCrossAccountPRM",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
               "bedrock-agentcore:GetRuntimeProtectedResourceMetadata"
            ],
            "NotResource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
         },
         {
            "Sid": "AllowInvoke",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:InvokeAgentRuntime"
            ],
            "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*"
         }
      ]
   }
   ```

1. La seguente policy sugli endpoint consente a principi IAM specifici di richiamare risorse Code Interpreter.

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws::iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:InvokeCodeInterpreter"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:code-interpreter/CODE_INTERPRETER_ID"
         }
      ]
   }
   ```

1. ====== Tutte le operazioni sul piano dati

   La seguente policy sugli endpoint consente a principi IAM specifici di accedere alle operazioni del piano dati us-east-1 per una memoria specifica. AgentCore 

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws::iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:CreateEvent",
               "bedrock-agentcore:DeleteEvent",
               "bedrock-agentcore:GetEvent",
               "bedrock-agentcore:ListEvents",
               "bedrock-agentcore:DeleteMemoryRecord",
               "bedrock-agentcore:GetMemoryRecord",
               "bedrock-agentcore:ListMemoryRecords",
               "bedrock-agentcore:RetrieveMemoryRecords",
               "bedrock-agentcore:ListActors",
               "bedrock-agentcore:ListSessions",
               "bedrock-agentcore:BatchCreateMemoryRecords",
               "bedrock-agentcore:BatchDeleteMemoryRecords",
               "bedrock-agentcore:BatchUpdateMemoryRecords"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID"
         }
      ]
   }
   ```

    **Accesso a tutte le memorie** 

   La seguente policy sugli endpoint consente ai principali IAM specifici di accedere a tutte le memorie.

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws::iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:CreateEvent",
               "bedrock-agentcore:DeleteEvent",
               "bedrock-agentcore:GetEvent",
               "bedrock-agentcore:ListEvents",
               "bedrock-agentcore:DeleteMemoryRecord",
               "bedrock-agentcore:GetMemoryRecord",
               "bedrock-agentcore:ListMemoryRecords",
               "bedrock-agentcore:RetrieveMemoryRecords",
               "bedrock-agentcore:ListActors",
               "bedrock-agentcore:ListSessions",
               "bedrock-agentcore:BatchCreateMemoryRecords",
               "bedrock-agentcore:BatchDeleteMemoryRecords",
               "bedrock-agentcore:BatchUpdateMemoryRecords"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/*"
         }
      ]
   }
   ```

    **Restrizione dell'accesso tramite API** 

   La seguente policy sugli endpoint concede l'autorizzazione a uno specifico principale IAM per creare eventi in una specifica risorsa di memoria. AgentCore 

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws::iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:CreateEvent"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID"
         }
      ]
   }
   ```

1. La seguente policy sugli endpoint consente a specifici presidi IAM di connettersi alle risorse del Browser Tool.

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws::iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:ConnectBrowserAutomationStream"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:browser/BROWSER_ID"
         }
      ]
   }
   ```

1. Di seguito è riportato l'esempio di una policy dell'endpoint personalizzata. Quando colleghi questa policy all'endpoint dell'interfaccia, consente a tutti i principali di richiamare il gateway specificato nel campo. `Resource`

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
               "bedrock:InvokeGateway"
            ],
            "Resource": "arn:aws::bedrock-agentcore:us-east-1::gateway/my-gateway"
         }
      ]
   }
   ```

1. La seguente policy sugli endpoint consente l'accesso alle risorse Identity.

   ```
   {
      "Statement": [
         {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
               "*"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:workload-identity-directory/default/workload-identity/WORKLOAD_IDENTITY_ID"
         }
      ]
   }
   ```

1. La seguente policy sugli endpoint consente a specifici presidi IAM di accedere alle operazioni di valutazione e ottimizzazione.

   ```
   {
      "Statement": [
         {
            "Sid": "AllowBatchEvaluations",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:StartBatchEvaluation",
               "bedrock-agentcore:GetBatchEvaluation",
               "bedrock-agentcore:ListBatchEvaluations",
               "bedrock-agentcore:StopBatchEvaluation",
               "bedrock-agentcore:DeleteBatchEvaluation"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:batch-evaluate/*"
         },
         {
            "Sid": "AllowRecommendations",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:StartRecommendation",
               "bedrock-agentcore:GetRecommendation",
               "bedrock-agentcore:ListRecommendations",
               "bedrock-agentcore:DeleteRecommendation"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:recommendation/*"
         },
         {
            "Sid": "AllowEvaluators",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:CreateEvaluator",
               "bedrock-agentcore:GetEvaluator",
               "bedrock-agentcore:ListEvaluators",
               "bedrock-agentcore:UpdateEvaluator",
               "bedrock-agentcore:DeleteEvaluator"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:evaluator/*"
         },
         {
            "Sid": "AllowOnlineEvaluationConfigs",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:CreateOnlineEvaluationConfig",
               "bedrock-agentcore:GetOnlineEvaluationConfig",
               "bedrock-agentcore:ListOnlineEvaluationConfigs",
               "bedrock-agentcore:UpdateOnlineEvaluationConfig",
               "bedrock-agentcore:DeleteOnlineEvaluationConfig"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:online-evaluation-config/*"
         },
         {
            "Sid": "AllowABTests",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:CreateABTest",
               "bedrock-agentcore:GetABTest",
               "bedrock-agentcore:ListABTests",
               "bedrock-agentcore:UpdateABTest",
               "bedrock-agentcore:DeleteABTest"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:ab-test/*"
         },
         {
            "Sid": "AllowConfigurationBundles",
            "Effect": "Allow",
            "Principal": {
               "AWS": "arn:aws:iam::ACCOUNT_ID:root"
            },
            "Action": [
               "bedrock-agentcore:CreateConfigurationBundle",
               "bedrock-agentcore:GetConfigurationBundle",
               "bedrock-agentcore:GetConfigurationBundleVersion",
               "bedrock-agentcore:ListConfigurationBundles",
               "bedrock-agentcore:ListConfigurationBundleVersions",
               "bedrock-agentcore:UpdateConfigurationBundle",
               "bedrock-agentcore:DeleteConfigurationBundle"
            ],
            "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:configuration-bundle/*"
         }
      ]
   }
   ```