Verwenden Sie die VPC-Endpunkte der Schnittstelle (AWS PrivateLink), um eine private Verbindung zwischen Ihrer VPC und Ihren Amazon AgentCore Bedrock-Ressourcen herzustellen
Sie können AWS PrivateLink es verwenden, um eine private Verbindung zwischen Ihrer VPC und Amazon AgentCore Bedrock herzustellen. Sie können darauf zugreifen, AgentCore als ob es in Ihrer VPC wäre, ohne ein Internet-Gateway, ein NAT-Gerät, eine VPN-Verbindung oder eine Direct Connect-Verbindung verwenden zu müssen. Instances in Ihrer VPC benötigen für den Zugriff AgentCore keine öffentlichen IP-Adressen.
Sie stellen diese private Verbindung her, indem Sie einen Schnittstellenendpunkt erstellen, der von AWS PrivateLink betrieben wird. Wir erstellen eine Endpunkt-Netzwerkschnittstelle in jedem Subnetz, das Sie für den Schnittstellen-Endpunkt aktivieren. Hierbei handelt es sich um vom Anforderer verwaltete Netzwerkschnittstellen, die als Eingangspunkt für den Datenverkehr dienen, der für AgentCore bestimmt ist.
Weitere Informationen finden Sie AWS PrivateLink im AWS PrivateLink Handbuch unter Access AWS Services bis.
Überlegungen zu AgentCore
Bevor Sie einen Schnittstellen-Endpunkt für einrichten AgentCore, lesen Sie die Überlegungen im AWS PrivateLink Handbuch.
AgentCore bietet drei AWS PrivateLink Endpunkte:
-
Endpunkt der Datenebene - com.amazonaws.region.bedrock-agentcore
-
Endpunkt der Steuerungsebene - com.amazonaws.region.bedrock-agentcore-control
-
Gateway-Endpunkt - com.amazonaws.region.bedrock-agentcore.gateway
Die folgende Tabelle zeigt den AWS PrivateLink Unterstützungsstatus für jedes AgentCore Primitiv:
| Primitiv |
Datenebene |
Steuerebene |
|
Laufzeit
|
Unterstützt
|
Unterstützt
|
|
Arbeitsspeicher
|
Unterstützt
|
Unterstützt
|
|
Built-in Werkzeuge (Codeinterpreter, Browser-Tool)
|
Unterstützt
|
Unterstützt
|
|
Identität
|
Unterstützt
|
Unterstützt
|
|
Gateway
|
Unterstützt
|
Unterstützt
|
|
Evaluierungen und Optimierungen
|
Unterstützt
|
Unterstützt
|
|
Richtlinie
|
Unterstützt
|
Unterstützt
|
Eine Liste der AWS Regionen, in denen AgentCore Schnittstellenendpunkte verfügbar sind, finden Sie unter Unterstützte AWS Regionen.
Die Datenebenen-APIs unterstützen sowohl AWS Signature Version 4-Header (Sigv4) für die Authentifizierung als auch die Bearer-Token-Authentifizierung (OAuth). VPC-Endpunktrichtlinien können nur Anrufer einschränken, die auf IAM-Prinzipalen basieren, und nicht auf OAuth-Benutzern. Damit OAuth-based Anfragen über den VPC-Endpunkt erfolgreich sind, muss der Principal in der Endpunktrichtlinie auf * gesetzt sein. Andernfalls können nur auf der SigV4-Zulassungsliste gelistete Anrufer erfolgreiche Anrufe über den VPC-Endpunkt tätigen.
AWS Kontext-Schlüssel für globale IAM-Bedingungen werden unterstützt. Standardmäßig AgentCore ist der vollständige Zugriff auf über den Schnittstellenendpunkt zulässig. Sie können den Zugriff kontrollieren, indem Sie eine Endpunktrichtlinie an den Schnittstellenendpunkt anhängen oder den Endpunkt-Netzwerkschnittstellen eine Sicherheitsgruppe zuordnen.
Erstellen Sie einen Schnittstellenendpunkt für AgentCore
Sie können einen Schnittstellenendpunkt für die AgentCore Verwendung der Amazon VPC-Konsole oder der AWS Befehlszeilenschnittstelle (AWS CLI) erstellen. Weitere Informationen finden Sie im AWS PrivateLink Handbuch unter Erstellen eines Schnittstellenendpunkts.
Erstellen Sie einen Schnittstellenendpunkt für die AgentCore Verwendung des folgenden Dienstnamenformats:
-
Alle Primitive der Datenebene (Runtime, Built-in Tools, Memory, Identity): com.amazonaws.region.bedrock-agentcore
-
Für AgentCore Gateway: com.amazonaws.region.bedrock-agentcore.gateway
-
Für Operationen auf der Steuerungsebene (Laufzeit- und Speicherverwaltung): com.amazonaws.region.bedrock-agentcore-control
Wenn Sie privates DNS für den Schnittstellenendpunkt aktivieren, können Sie API-Anfragen an die AgentCore Verwendung des standardmäßigen regionalen DNS-Namens stellen. Beispiel, bedrock-agentcore.us-east-1.amazonaws.com.
Erstellen einer Endpunktrichtlinie für Ihren Schnittstellen-Endpunkt
Eine Endpunktrichtlinie ist eine IAM-Ressource, die Sie an einen Schnittstellen-Endpunkt anfügen können. Die standardmäßige Endpunktrichtlinie ermöglicht den vollen Zugriff AgentCore über den Schnittstellenendpunkt. Um den Zugriff zu kontrollieren, der AgentCore von Ihrer VPC aus gewährt wird, fügen Sie dem Schnittstellenendpunkt eine benutzerdefinierte Endpunktrichtlinie hinzu.
Eine Endpunktrichtlinie gibt die folgenden Informationen an:
-
Die Principals, die Aktionen ausführen können (AWS Konten, IAM-Benutzer und IAM-Rollen).
-
Wenn Ihr AgentCore Gateway-Ingress nicht auf AWS Signature Version 4 (Sigv4) basiert (wenn Sie beispielsweise stattdessen OAuth verwenden), müssen Sie das Feld als Platzhalter * angeben. Principal Die SigV4-basierte Authentifizierung ermöglicht es Ihnen, das als eine bestimmte Identität zu definieren. Principal AWS Dies gilt auch für AgentCore Runtime.
-
Aktionen, die ausgeführt werden können
-
Die Ressourcen, auf denen die Aktionen ausgeführt werden können.
Weitere Informationen finden Sie im AWS PrivateLink Handbuch unter Steuern des Zugriffs auf Dienste mithilfe von Endpunktrichtlinien.
Endpunktrichtlinien für verschiedene Primitive
Die folgenden Beispiele zeigen Endpunktrichtlinien für verschiedene AgentCore Komponenten:
Beispiel
- Runtime
-
-
Die folgende Endpunktrichtlinie ermöglicht es bestimmten IAM-Prinzipalen, Agenten-Laufzeitressourcen aufzurufen.
{
"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"
}
]
}
Gemischte IAM- und OAuth-Authentifizierung
Die InvokeAgentRuntime API unterstützt zwei Modi der VPC-Endpunktautorisierung. Die folgende Beispielrichtlinie ermöglicht sowohl IAM-Prinzipalen als auch OAuth-Aufrufern den Zugriff auf verschiedene Agenten-Laufzeitressourcen.
{
"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"
}
]
}
Die obige Richtlinie erlaubt es nur dem IAM-Prinzipal, Aufrufe an zu tätigen. InvokeAgentRuntime customAgent1 Außerdem können damit sowohl IAM-Prinzipale als auch OAuth-Anrufer Anrufe tätigen. InvokeAgentRuntime customAgent2
Richtlinien für Endgeräte mit geschützten Ressourcenmetadaten (PRM)
Die GetRuntimeProtectedResourceMetadata API implementiert geschützte OAuth 2.0-Metadaten für geschützte Ressourcen (RFC 9728). Clients rufen diesen Endpunkt auf, bevor sie über Anmeldeinformationen verfügen, um herauszufinden, welcher Autorisierungsserver eine bestimmte Agentenlaufzeit schützt. Dieser Endpunkt ist von Haus aus nicht authentifiziert, daher Principal muss er in der Endpunktrichtlinie auf * gesetzt werden.
VPC-Endpunktrichtlinien werden bei PRM-Anfragen durchgesetzt. Wenn Ihre Endpunktrichtlinie dies nicht ausdrücklich zulässtbedrock-agentcore:GetRuntimeProtectedResourceMetadata, werden PRM-Anfragen über diesen Endpunkt mit HTTP 403 verweigert. Jede OAuth-configured Agenten-Laufzeit, auf die über einen VPC-Endpunkt zugegriffen wird, erfordert PRM-Zugriff für die Erkennung des Autorisierungsservers.
Wenn Sie eine Endpunktrichtlinie zur Durchsetzung der Datengrenze haben und keine OAuth- oder JWT-Authentifizierung verwenden, werden PRM-Anfragen automatisch abgelehnt. Es ist keine zusätzliche Konfiguration erforderlich.
Die folgende Endpunktrichtlinie ermöglicht es jedem Aufrufer, den Autorisierungsserver (PRM) zu ermitteln und gleichzeitig Laufzeitaufrufe auf einen bestimmten IAM-Prinzipal zu beschränken:
{
"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"
}
]
}
Um kontoübergreifende PRM-Suchanfragen über Ihren VPC-Endpunkt zu blockieren (Data Perimeter Enforcemeter Enforcemeter), beschränken Sie die PRM-Zulässigkeitsangabe nur auf die Laufzeiten Ihres Kontos:
{
"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/*"
}
]
}
- Code Interpreter Tool
-
-
Die folgende Endpunktrichtlinie ermöglicht es bestimmten IAM-Prinzipalen, Code Interpreter-Ressourcen aufzurufen.
{
"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"
}
]
}
- Memory
-
-
====== Alle Operationen auf der Datenebene
Die folgende Endpunktrichtlinie ermöglicht bestimmten IAM-Prinzipalen den Zugriff auf US-East-1-Datenebenenoperationen für einen bestimmten Speicher. 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"
}
]
}
Zugriff auf alle Speicher
Die folgende Endpunktrichtlinie ermöglicht bestimmten IAM-Prinzipalen den Zugriff auf alle Speicher.
{
"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/*"
}
]
}
Zugriffsbeschränkung durch APIs
Die folgende Endpunktrichtlinie gewährt einem bestimmten IAM-Prinzipal die Erlaubnis, Ereignisse in einer bestimmten AgentCore Speicherressource zu erstellen.
{
"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"
}
]
}
- Browser Tool
-
-
Die folgende Endpunktrichtlinie ermöglicht es bestimmten IAM-Prinzipalen, eine Verbindung zu Browser Tool-Ressourcen herzustellen.
{
"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"
}
]
}
- Gateway
-
-
Im Folgenden finden Sie ein Beispiel für eine benutzerdefinierte Endpunktrichtlinie. Wenn Sie diese Richtlinie an Ihren Schnittstellenendpunkt anhängen, können alle Prinzipale das im Feld angegebene Gateway aufrufen. Resource
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"bedrock:InvokeGateway"
],
"Resource": "arn:aws::bedrock-agentcore:us-east-1::gateway/my-gateway"
}
]
}
- Identity
-
-
Die folgende Endpunktrichtlinie ermöglicht den Zugriff auf Identitätsressourcen.
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"*"
],
"Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:workload-identity-directory/default/workload-identity/WORKLOAD_IDENTITY_ID"
}
]
}
- Evaluations and Optimizations
-
-
Die folgende Endpunktrichtlinie ermöglicht bestimmten IAM-Prinzipalen den Zugriff auf Evaluierungs- und Optimierungsvorgänge.
{
"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/*"
}
]
}