View a markdown version of this page

Beschränken Sie den Zugriff auf Anmeldeinformationsanbieter nach Workload-Identität - Amazon Grundgestein AgentCore

Beschränken Sie den Zugriff auf Anmeldeinformationsanbieter nach Workload-Identität

Mithilfe von IAM-Richtlinien können Sie steuern, welche Workload-Identitäten Zugriff auf bestimmte Anmeldeinformationsanbieter haben. Dies ermöglicht eine differenzierte Zugriffskontrolle und stellt sicher, dass nur autorisierte Agenten Anmeldeinformationen für bestimmte Dienste abrufen können.

Anmerkung

Die IAM-Rolle, die Sie einem Agenten zuweisen, steuert, welche Anmeldeinformationsanbieter der Agent anrufen kann. Der Dienst erzwingt keine zusätzliche Bindung zwischen Workload-Identitäten und Anmeldeinformationsanbietern im selben Konto. Um die Verfahren mit den geringsten Rechten einzuhalten, beschränken Sie Ihre Resource IAM-Richtlinienblöcke auf bestimmte ARNs von Workload-Identitäten und Anmeldeinformationsanbietern, anstatt sie zu verwenden. *

Ein erfolgreicher Anruf bei einem Anmeldeinformationsanbieter bedeutet nicht, dass Anmeldeinformationen automatisch zurückgegeben werden. Die Anmeldeinformationen, die ein Workload abruft, beziehen sich auf die Benutzeridentität in seinem Workload-Zugriffstoken. Bei OAuth2 (3LO) -Anbietern muss der Endbenutzer die Autorisierung abgeschlossen haben, bevor Anmeldeinformationen für den Abruf für diese Kombination aus Workload-Identität und Benutzer verfügbar sind.

Mechanismen zur Zugriffskontrolle

  • Identitätsbasierte Einschränkungen für Workloads — Beschränken Sie den Zugriff des Anmeldeinformationsanbieters auf bestimmte Workload-Identitäten

  • Resource-level Berechtigungen — Steuern Sie den Zugriff auf einzelne Anbieter von Anmeldeinformationen mithilfe von Richtlinien ARN-based

  • Directory-level Kontrollen — Verwalten Sie den Zugriff auf der Ebene des Workload-Identitätsverzeichnisses

  • Geltungsbereich des Anmeldeinformationsanbieters — Schränken Sie ein, auf welche Anmeldeinformationsanbieter eine Workload-Identität zugreifen kann, indem Sie ARNs von Anmeldeinformationsanbietern in den Richtlinienblock aufnehmen Resource

Beispiele für IAM-Richtlinien

Die folgenden Beispiele zeigen, wie Sie IAM-Richtlinien erstellen, die den Zugriff auf den Anmeldeinformationsanbieter auf der Grundlage der Workload-Identität und des Anmeldeinformationsanbieters einschränken.

Beschränken Sie den Zugriff auf einen bestimmten API-Schlüsselanbieter für Anmeldeinformationen

Diese Richtlinie ermöglicht es einer Workload-Identität, API-Schlüssel nur von einem bestimmten Anmeldeinformationsanbieter abzurufen. Der ARN des Anmeldeinformationsanbieters im Resource Block schränkt den Zugriff auf diesen Anbieter ein.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }

Beschränkt den Zugriff auf einen bestimmten OAuth2-Anmeldeinformationsanbieter

Diese Richtlinie ermöglicht es einer Workload-Identität, OAuth2-Token nur von einem bestimmten OAuth2-Anmeldeinformationsanbieter abzurufen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>" ] } ] }

Erlaubt mehreren Workload-Identitäten den Zugriff auf einen Anmeldeinformationsanbieter

Diese Richtlinie ermöglicht es mehreren Workload-Identitäten, API-Schlüssel von demselben Anmeldeinformationsanbieter abzurufen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKeyMultipleIdentities", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-1", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-2", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-3", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }

Verweigern Sie den Zugriff auf einen bestimmten Anmeldeinformationsanbieter

Sie können einem bestimmten Anmeldeinformationsanbieter mithilfe einer Anweisung explizit den Zugriff auf die Identität eines Deny Workloads verweigern. Deny-Anweisungen haben Vorrang vor Allow-Anweisungen und eignen sich daher für die Erstellung von Leitplanken.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToSensitiveProvider", "Effect": "Deny", "Action": [ "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<sensitive-provider-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<sensitive-provider-name>" ] } ] }

Verwenden Sie separate Workload-Identitäten für verschiedene Anbieter von Anmeldeinformationen

Wenn Sie unterschiedliche Agenten für den Zugriff auf verschiedene Anbieter von Anmeldeinformationen benötigen, erstellen Sie separate Workload-Identitäten mit separaten IAM-Rollen. Jede IAM-Rolle ist nur auf die Anmeldeinformationsanbieter beschränkt, die der Agent benötigt.

Wenn beispielsweise Agent A nur auf Anbieter X und Agent B nur auf Anbieter Y zugreifen soll:

  1. Workload-Identität agent-a und Workload-Identität erstellen agent-b

  2. Erstellen Sie eine IAM-Rolle AgentARole mit einer Richtlinie, die nur Anbieter X Zugriff gewährt

  3. Erstellen Sie eine IAM-Rolle AgentBRole mit einer Richtlinie, die nur Anbieter Y Zugriff gewährt

  4. Ordnen Sie jede Workload-Identität der entsprechenden IAM-Rolle zu

IAM-Richtlinie für Agent A (nur Zugriff auf Anbieter X)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentAAccessProviderX", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-a", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-x" ] } ] }

IAM-Richtlinie für Agent B (nur Zugriff auf Anbieter Y)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentBAccessProviderY", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-b", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-y" ] } ] }

Implementierungsschritte

So implementieren Sie eine identitätsbasierte Zugriffskontrolle für Workloads für Anmeldeinformationsanbieter:

  1. Identifizieren Sie Ihre Workload-Identitäten — Verwenden Sie diese Optionaws bedrock-agentcore-control list-workload-identities, um alle Workload-Identitäten in Ihrem Konto aufzulisten. Informationen zum Erstellen und Verwalten von Workload-Identitäten finden Sie unter Workload-Identitäten mit Identität verwalten. AgentCore

  2. Ermitteln Sie die ARNs der Anmeldeinformationsanbieter — Identifizieren Sie die spezifischen Anmeldeinformationsanbieter, auf die Sie den Zugriff kontrollieren möchten. Die ARNs der Anmeldeinformationsanbieter haben folgende Formate:

    • arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/api-key/<provider-name>

    • arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>

  3. IAM-Richtlinien erstellen — Schreiben Sie IAM-Richtlinien, die angeben, welche Workload-Identitäten auf welche Anmeldeinformationsanbieter zugreifen können

  4. Richtlinien an Rollen anhängen — Ordnen Sie die Richtlinien den IAM-Rollen zu, die von Ihren Agenten oder Anwendungen verwendet werden

  5. Testen Sie die Zugriffskontrollen — Stellen Sie sicher, dass nur autorisierte Workload-Identitäten auf die angegebenen Anmeldeinformationsanbieter zugreifen können

Bewährte Methoden

  • Verwenden Sie aussagekräftige Namen für Workload-Identitäten, um die Richtlinienverwaltung zu vereinfachen

  • Fügen Sie ARNs von Anmeldeinformationsanbietern in den Resource Block ein, um den Zugriff auf bestimmte Anbieter zu beschränken, anstatt allen Anbietern im Konto Zugriff zu gewähren

  • Verwenden Sie separate Workload-Identitäten und IAM-Rollen, wenn verschiedene Agenten Zugriff auf unterschiedliche Anmeldeinformationsanbieter benötigen

  • Verwenden Sie explizite Deny Anweisungen, um Leitplanken zu erstellen, die den Zugriff auf sensible Anmeldeinformationsanbieter unabhängig von anderen Richtlinien verhindern

  • Prüfen und überprüfen Sie die Zugriffsrichtlinien regelmäßig, um sicherzustellen, dass sie Ihren Sicherheitsanforderungen entsprechen

  • Erwägen Sie die Verwendung von IAM-Richtlinienbedingungen für zusätzliche Zugriffskontrollen auf der Grundlage von Zeit, IP-Adresse oder anderen Faktoren

  • Testen Sie Richtlinien in einer Entwicklungsumgebung, bevor Sie sie auf Produktionsworkloads anwenden