Sicherheit und Zugriffskontrollen
Der Kabelbaum bietet Ihnen dieselben Sicherheitsprinzipien wie die anderen AgentCore, allerdings ist er konfigurationsabhängig.
-
Isolierte Ausführung. Jede Sitzung läuft in Runtime auf ihrer eigenen Firecracker MicroVM. AgentCore Kein gemeinsamer Status, kein gemeinsames Dateisystem.
-
IAM-Ausführungsrolle. Der Harness nimmt eine IAM-Rolle an, die Sie besitzen und die so konfigurierbar ist, dass sie Bedrock, ECR und die Primitive, die AgentCore er CloudWatch berührt, einbezieht. Im Folgenden finden Sie ein Beispiel für eine Richtlinie für Ausführungsrollen.
-
IAM-Berechtigungsmodell. Harness-APIs erfordern Berechtigungen sowohl für die Harness-Ressource als auch für die zugrunde liegende AgentCore Runtime-Ressource. Zum Beispiel
InvokeHarnesserfordert das Aufrufenbedrock-agentcore:InvokeHarnesssowohl als auchbedrock-agentcore:InvokeAgentRuntimeBerechtigungen für den Harness-ARN. Das gleiche Muster gilt für Operationen auf der Steuerungsebene:UpdateHarnessDeleteHarnesserfordertbedrock-agentcore:UpdateAgentRuntimebedrock-agentcore:DeleteAgentRuntime, erfordert usw. Die vollständige Liste finden Sie in der Richtlinie für Ausführungsrollen. -
OAuth-Unterstützung für eingehenden Datenverkehr. Für JWT-konfigurierte Harness-Ressourcen müssen Anrufer ein gültiges JWT vorlegen, das von einem konfigurierten Identitätsanbieter ausgestellt wurde, bevor sie den Harness aufrufen können. AgentCore Identity leitet die Identität des Endbenutzers durch den Agenten, sodass nachgeschaltete Tools APIs mit bestimmten Benutzeranmeldedaten aufrufen können, anstatt ein gemeinsames Dienstkonto zu verwenden.
-
VPC. Connect Harness-Sitzungen mit Ihrer VPC, um privaten Zugriff auf interne Ressourcen zu erhalten.
-
Richtlinien auf dem Gateway. Wenn Tools über AgentCore Gateway bereitgestellt werden, können Cedar-based Richtlinien so konfiguriert werden, dass sie jeden Anruf verfolgen: wer kann welches Tool aufrufen, unter welchen Bedingungen, mit welchen Argumenten.
Anmerkung
SigV4 und Identität pro Benutzer. Wenn sich Anrufer mit Sigv4 (AWS IAM) authentifizieren, überträgt der Harness die Identität pro Benutzer nicht an nachgeschaltete Tool-Aufrufe. Das bedeutet, dass in AgentCore Identity Token Vault Funktionen zum Gültigkeitsbereich von Anmeldeinformationen pro Benutzer — wie z. B. benutzerspezifische Speicherung von OAuth-Tokens und Tokenaustausch im Namen von Tokens — nur verfügbar sind, wenn sich Anrufer mit einem Bearer-JWT über den eingehenden OAuth-Pfad authentifizieren. Wenn Ihr Anwendungsfall die Festlegung von Anmeldedaten pro Benutzer für nachgelagerte Tools erfordert, konfigurieren Sie eingehendes OAuth im Kabelbaum. Die Unterstützung von SigV4 für die Identität pro Benutzer ist für eine future Version geplant.
Modell der geteilten Verantwortung
Der Harness basiert auf Runtime. AgentCore Die Sicherheitsgrenze ist dieselbe: IAM- oder JWT-Authentifizierung kombiniert mit MicroVM-Isolierung. Der Kabelbaum fügt keine Sicherheitsebene zwischen dem Anrufer und der MicroVM hinzu.
AWS Verantwortlichkeiten:
-
Sichere Infrastruktur und MicroVM-Isolierung auf Hardwareebene
-
Patchen des Betriebssystemkernels
-
Sprach-Runtime-Patching für direkte Codebereitstellungen
-
Sicherheit der Netzwerkinfrastruktur
-
Verfügbarkeit und Belastbarkeit von Diensten
Ihre Aufgaben:
-
Sicherheit des Agentencodes und Verwaltung von Abhängigkeiten
-
IAM-Zugriffskontrollen und Ressourcenrichtlinien
-
Sicherheit von Befehlen, die in Runtime-Sitzungen ausgeführt werden
-
Session-to-user Durchsetzung von Kartenergebnissen
-
Überprüfung von Eingaben und Verhinderung einer sofortigen Injektion — einschließlich der Überprüfung aller
InvokeHarnessEingaben (sieheVertrauensgrenze und Überprüfung der Eingaben) -
Validierung der Modellkonfiguration — z. B.
modelIdFelderadditionalParamsapiBase, und (sieheKonfigurationsparameter des Modells) -
Quellen für Fähigkeiten und Anweisungen — Sicherstellung, dass S3-Buckets, Git-Repositorys und URLs, die für Skills verwendet werden, vertrauenswürdige Inhalte enthalten (siehe) Fähigkeiten und Anweisungen
-
Container-Image-Updates (für Container-Bereitstellungen) — führen Sie regelmäßig eine Neuerstellung mit dem neuesten sicheren Basis-Image durch
-
Netzwerkkonfiguration (Sicherheitsgruppen, VPC-Endpunkte, Routing-Tabellen)
Das vollständige AgentCore Runtime-Modell mit geteilter Verantwortung finden Sie unter Bewährte Sicherheitsmethoden für AgentCore Runtime.
Vertrauensgrenze und Überprüfung der Eingaben
Alles InvokeHarness und jede InvokeAgentRuntimeCommand Eingabe ist vertrauenswürdig. Jeder Principal, der das IAM- oder JWT-Authentifizierungs- und Autorisierungsgate durchläuft, hat Zugriff auf die gesamte MicroVM-Sitzung, einschließlich der im Harness konfigurierten Tools und Funktionen. Der Harness bereinigt keine Eingaben, filtert keine Inhaltsblöcke und erzwingt keine Verhaltenseinschränkungen.
Wenn Sie den Harness Endbenutzern zugänglich machen, denen Sie nicht voll vertrauen (Mitarbeiter, externe Kunden oder Integrationen von Drittanbietern), überprüfen und bereinigen Sie die Nachrichten in Ihrer Anwendungsebene, bevor Sie sie an sie weitergeben. InvokeHarness Dazu gehört das Entfernen von Inhaltsblocktypen oder Modellkonfigurationsfeldern, die Sie nicht versenden möchten. Dies ist dasselbe Muster wie bei jedem Service, der Payloads von autorisierten Anrufern akzeptiert, wie Lambda, Amazon API Gateway und Amazon SQS.
Konfigurationsparameter des Modells
Das model Feld in InvokeHarness akzeptiert Bedrock additionalParams -, OpenAI- und LitelLM-Konfigurationen. Diese Parameter werden unverändert an den zugrunde liegenden Modellanbieter weitergegeben. Der Harness validiert, filtert oder schränkt diese Parameter nicht ein.
Anrufer, die Einstellungen vornehmen können, additionalParams können:
-
Anfragen an beliebige Endpunkte weiterleiten — Der
aws_bedrock_runtime_endpointParameter LiteLLM überschreibt die Bedrock-Endpunkt-URL. Ein Anrufer kann die signierte Anfrage — einschließlich der SigV4-Signatur und der Sitzungsanmeldedaten — an einen Endpunkt weiterleiten, der in der Konfiguration des Vertrauensmodells angegeben ist. -
HTTP-Header überschreiben —
extra_headersDer Parameter von OpenAI fügt HTTP-Header in die ausgehende Anfrage an den Modellanbieter ein oder überschreibt sie, einschließlich des Headers.Authorization -
Versuch, eine IAM-Rolle anzunehmen — Der
aws_role_nameParameter von LitellM weist die Laufzeit an, eine andere IAM-Rolle anzunehmen, bevor der Modellanbieter aufgerufen wird. Der Versuch ist je nach den Berechtigungen der Ausführungsrolle erfolgreich oder schlägt fehl.sts:AssumeRole -
Zielmodell oder Zielregion ändern — Die
apiBaseFeldermodelIdund können Rückschlüsse auf ein komplett anderes Modell, eine andere Region oder einen anderen Anbieter umleiten.
Wenn Ihre Anwendung InvokeHarness Funktionen für Anrufer bereitstellt, denen Sie nicht voll vertrauen, sollten Sie die Implementierung der Eingabevalidierung in Ihrer Anwendungsebene in Betracht ziehen. Zu den Beispielen gehören:
-
Das
modelFeld wird vor dem Weiterleiten von Anfragen entfernt oder zugelassen -
validieren oder entfernen
additionalParams, undapiBasemodelId -
Ablehnung
sts:AssumeRoleder Ausführungsrolle, wenn kein Rollenwechsel erforderlich ist -
Umfang des Harness-Netzwerkzugriffs mithilfe von VPC-Sicherheitsgruppen
Fähigkeiten und Anweisungen
Skills sind Bündel von Markdown und Skripten, die das Harness zum Zeitpunkt des Aufrufs von Amazon S3 oder Git abruft und in den Kontext des Agenten einfügt. Der Harness behandelt alle Skill-Inhalte als vertrauenswürdige Eingaben. Der Inhalt oder die Quelle der Fähigkeiten werden nicht validiert, bereinigt oder inspiziert, bevor sie dem Agenten zur Verfügung gestellt werden.
Sie sind verantwortlich für:
-
Sicherstellen, dass Skillquellen (S3-Buckets, Git-Repositorys, URLs) vertrauenswürdig sind und der Zugriff kontrolliert wird
-
Überprüfung der Skillinhalte — einschließlich Markdown-Anweisungen und aller eingebetteten Skripts —, bevor Sie sie im Harness konfigurieren
-
Steuern, welche Principals das
skillsFeld pro Aufruf überschreiben können, da Aufrufer den Harness auf beliebige S3- oder Git-Quellen verweisen können
Fähigkeiten können pro Aufruf außer Kraft gesetzt werden. InvokeHarness Wenn Ihre Anwendung vom Aufrufer bereitgestellte Eingaben an weiterleitetInvokeHarness, kann ein Aufrufer seine eigenen Skillquellen mit beliebigen Anweisungen oder Skripten angeben. Beispiele für Abhilfemaßnahmen sind:
-
Das
skillsFeld wird aus den vom Anrufer bereitgestellten Anfragen entfernt oder ignoriert -
Zulässige S3-Präfixe oder Git-Repositorys zulassen
Beobachtbarkeit und Spurenkorrelation
Der Harness leitet Korrelationsbezeichner automatisch an nachgeschaltete AgentCore Primitive (Gateway, Memory, Code Interpreter, Browser) weiter, um einheitliche Trace-Ansichten in zu ermöglichen. CloudWatch Diese Identifikatoren werden nur aus Gründen der Beobachtbarkeit verwendet — sie werden niemals für Autorisierungs- oder Datenzugriffsentscheidungen verwendet.
Netzwerkkonfiguration
Standardmäßig werden Harness-Sitzungen im öffentlichen Netzwerk ausgeführt. Um auf private Ressourcen (Datenbanken, interne APIs, private Subnetze) zuzugreifen, stellen Sie den Harness in Ihrer VPC bereit.
Beispiel
Wichtig
Der Harness ruft seinen Anwendungscontainer zu Beginn jeder Sitzung aus Amazon ECR Public ab. Wenn Ihre VPC im VPC-Modus ausgeführt wird, muss sie ausgehenden Zugriff auf zulassen. public.ecr.aws Amazon ECR Public unterstützt keine VPC-Endpunkte, daher muss Ihre VPC über ein NAT-Gateway mit einer Route zu einem Internet-Gateway verfügen. Wenn diese Konnektivität nicht verfügbar ist, können Sitzungen aufgrund von Timeouts beim Abrufen von Images nicht gestartet werden.
Weitere Anleitungen zur Netzwerkkonfiguration finden Sie unter Konfiguration von AgentCore Runtime und VPC-Konfiguration der integrierten Tools. Informationen zur eingehenden API-Konnektivität über PrivateLink finden Sie unter VPC-Schnittstellenendpunkte.
Eingehendes OAuth
Fordert Anrufer auf, ein gültiges JWT vorzulegen, das von einem konfigurierten Identitätsanbieter ausgestellt wurde, bevor sie den Harness aufrufen können. AgentCore Identity leitet die Identität des Endbenutzers über den Agenten weiter, sodass nachgelagerte Tools APIs mit bestimmten Benutzeranmeldedaten aufrufen können, anstatt ein gemeinsames Dienstkonto zu verwenden.
Beispiel
Erfahren Sie mehr: AgentCore Identität · eingehender JWT-Autorisierer · ausgehende Anmeldeinformationen
Gateway-Richtlinien
Wenn Tools über AgentCore Gateway bereitgestellt werden, leiten Cedar-based Richtlinien jeden Anruf ab: Wer kann welches Tool aufrufen, unter welchen Bedingungen, mit welchen Argumenten.
Erfahren Sie mehr: AgentCore Politik · gemeinsame Muster
Richtlinie für die Ausführungsrolle
Das Harness nimmt eine von Ihnen bereitgestellte IAM-Ausführungsrolle an. Die Vertrauensrichtlinie der Rolle muss es dem AgentCore Dienstprinzipal ermöglichen, sie zu übernehmen:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "bedrock-agentcore.amazonaws.com"}, "Action": "sts:AssumeRole" }] }
Erforderliche IAM-Berechtigungen für Anrufer
Harness-APIs erfordern Berechtigungen sowohl für die Harness-Ressource als auch für die zugrunde liegenden AgentCore Runtime - und optionalen AgentCore Speicherressourcen. In der folgenden Tabelle sind die erforderlichen Aktionen für jede API aufgeführt:
| API | Erforderliche IAM-Aktionen |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Die meisten Aktionen verwenden den Harness-ARN als Ressourcenbereich:arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>. Endpunktaktionen verwenden auch den Harness-Endpunkt ARN:arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>/harness-endpoint/<endpointName>.
Die DeleteHarnessEndpoint Aktionen GetHarnessEndpointUpdateHarnessEndpoint, und erfordern sowohl den Harness-ARN als auch den Endpunkt-ARN. CreateHarnessEndpointbenötigt nur den Harness ARN. Der Endpunkt ist noch nicht vorhanden, daher wird kein Endpunkt-ARN benötigt. Wenn Sie einen benutzerdefinierten Endpunkt aufrufen InvokeHarness und sowohl den Harness-ARN als auch den Endpunkt-ARN InvokeAgentRuntimeCommand benötigen.
Beispiel für eine Richtlinie für Ausführungsrollen
{ "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:<region>:<accountId>:*" ] }, { "Sid": "EcrPublicTokenAccess", "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "StsForEcrPublicPull", "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" }, { "Sid": "XRayTracingAccess", "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*" }, { "Sid": "CloudWatchLogsGroup", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*" }, { "Sid": "CloudWatchLogsDescribeGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:*" }, { "Sid": "CloudWatchLogsStream", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" }, { "Sid": "CloudWatchMetricsPublish", "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "AgentCoreWorkloadIdentity", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreBrowserDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:browser/*" }, { "Sid": "AgentCoreCodeInterpreterDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:code-interpreter/*" } ] }
Die AgentCore CLI erstellt automatisch eine Rolle mit diesen Berechtigungen, wenn Sie ein Gerüst für ein Harness-Projekt einrichten. Die obige Richtlinie gilt für Fälle, in denen Sie die Rolle selbst erstellen.
Anmerkung
Die obige BedrockModelInvocation Beispielaussage ermöglicht den Aufruf aller Foundation-Modelle in allen Regionen und aller Bedrock-Ressourcen in Ihrem Konto. Um dies zu reduzieren, ersetzen Sie die Ressourcen-ARNs durch spezifische Inferenzprofile, mit denen Sie Anfragen über Modelle und Regionen hinweg mit einem einzigen ARN weiterleiten können. Zum Beispiel: arn:aws:bedrock:<destination_regions>:<accountId>:inference-profile/<profileId> gepaart mit allen zulässigen Regionen. arn:aws:bedrock:<region>:<accountId>:foundation-model/<modelId>
Bei Produktions-Workloads beschränken Sie sich auf die spezifischen ARNs, die Ihr Kabelbaum benötigt, anstatt ihn zu verwenden. Resource "*"
Zusätzliche Berechtigungen für optionale Funktionen
Im Folgenden finden Sie Beispielrichtlinien, die Sie je nach den Funktionen, die Ihr Harness verwendet, an Ihre Ausführungsrolle anhängen können. Folgen Sie dem Prinzip der geringsten Rechte — gewähren Sie Ihrem Harness-Agenten nur die spezifischen Tools und Anmeldeinformationen, die er für die Inferenz benötigt. Platzhalter-ReferenzPlatzhalterdefinitionen finden Sie unter.
Privater ECR-Zugriff (benutzerdefinierte Container-Images)
Fügen Sie diese Richtlinie hinzu, wenn Ihr Kabelbaum ein privates ECR-Image für einen benutzerdefinierten Container verwendet.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:<ecrRegion>:<ecrAccountId>:repository/<ecrRepoName>" }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }
AgentCore Speicher
Fügen Sie diese Richtlinie hinzu, wenn Ihr Harness eine kundeneigene Speicherinstanz verwendet.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreMemory", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:memory/<memoryId>" } ] }
AgentCore Browser (benutzerdefiniert)
Fügen Sie diese Richtlinie hinzu, wenn Ihr Kabelbaum eine benutzerdefinierte Browserressource verwendet, die dem Kunden gehört.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreBrowserCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:browser-custom/<browserCustomId>" } ] }
AgentCore Code-Interpreter (benutzerdefiniert)
Fügen Sie diese Richtlinie hinzu, wenn Ihr Kabelbaum einen kundeneigenen benutzerdefinierten Code-Interpreter verwendet.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreCodeInterpreterCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:code-interpreter-custom/<codeInterpreterCustomId>" } ] }
AgentCore Gateway
Fügen Sie diese Richtlinie hinzu, wenn Ihr Harness ein Gateway verwendet, das mit eingehender SigV4-Authentifizierung konfiguriert ist.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreGatewayAccess", "Effect": "Allow", "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:gateway/<gatewayId>" } ] }
Quellen für Fähigkeiten in Amazon S3 und Git
Fügen Sie diese Richtlinie hinzu, wenn Ihr Harness einen Skill aus einer Amazon S3 S3-Quelle abruft. Die Ausführungsrolle listet die Skill-Objekte unter dem Bucket-Präfix auf und lädt sie herunter.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreSkillS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<skillBucket>", "arn:aws:s3:::<skillBucket>/*" ] } ] }
Um einen Skill aus einem privaten Git-Repository abzurufen, liest der Harness ein persönliches Zugriffstoken von einem API-Schlüsselanbieter für Anmeldeinformationen. Gewähren Sie dem Anmeldeinformationsanbieter, der das Token besitzt, die unten gezeigte Richtlinie für den Anbieter von API-Schlüsselanmeldedaten.
Anbieter von API-Schlüsselanmeldedaten (OpenAI-, Gemini-, LiteLLM- oder MCP-Header-ARN-Referenzen)
Fügen Sie diese Richtlinie hinzu, wenn Ihr Kabelbaum einen API-Schlüsselanmeldeanbieter für Modellanbieter wie OpenAI, Gemini oder LitelLM verwendet.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreApiKeyTokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreApiKeyTokenVaultPerKey", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/apikeycredentialprovider/<apiKeyName>" }, { "Sid": "AgentCoreApiKeySecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/apikey/<apiKeyName>-*" } ] }
Anbieter von OAuth2-Anmeldeinformationen (Gateway) OAuth-protected
Fügen Sie diese Richtlinie hinzu, wenn Ihr Harness einen OAuth2-Anmeldeinformationsanbieter für Gateway-Tools verwendet. OAuth-protected
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreOAuth2TokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreOAuth2TokenVaultPerProvider", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/oauth2credentialprovider/<oauthProviderName>" }, { "Sid": "AgentCoreOAuth2Secret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/oauth2/<oauthProviderName>-*" } ] }
Platzhalter-Referenz
Ersetzen Sie die folgenden Platzhalter in den obigen Richtlinien durch Werte, die für Ihre Umgebung spezifisch sind:
| Placeholder | Description |
|---|---|
|
|
Die AWS Region, in der Ihre Ressource eingesetzt wird. |
|
|
Ihre AWS Konto-ID. |
|
|
Der Name Ihres Harness-Agenten. |
|
|
Die ID Ihrer AgentCore Speicherressource. |
|
|
Die ID Ihrer benutzerdefinierten Browserressource. |
|
|
Die ID Ihrer benutzerdefinierten Code-Interpreter-Ressource. |
|
|
Die ID Ihrer AgentCore Gateway-Ressource. |
|
|
Der Name Ihres API-Schlüsselanmeldeanbieters. |
|
|
Der Name des S3-Buckets, der Ihre Skill-Dateien enthält. |
|
|
Der Name Ihres OAuth2-Anmeldeinformationsanbieters. |
|
|
Die Region, in der Ihr ECR-Repository gehostet wird. |
|
|
Die AWS Konto-ID, der das ECR-Repository gehört. |
|
|
Der Name Ihres ECR-Repositorys. |
Anmerkung
Die nachfolgenden -* Secrets Manager-Ressourcen erklären das zufällige Suffix, das Secrets Manager an geheime ARNs anhängt.
Verwandte Themen
-
Tools- Werkzeugtypen und AllowedTools-Muster
-
Umgebung und Dateisystem- benutzerdefinierte Umgebungen und ECR-Berechtigungen
-
Kontrollieren Sie die Kosten mit Limits- Ausführungsbeschränkungen zur Kostenkontrolle