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
Themen
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:
-
Workload-Identität
agent-aund Workload-Identität erstellenagent-b -
Erstellen Sie eine IAM-Rolle
AgentARolemit einer Richtlinie, die nur Anbieter X Zugriff gewährt -
Erstellen Sie eine IAM-Rolle
AgentBRolemit einer Richtlinie, die nur Anbieter Y Zugriff gewährt -
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:
-
Identifizieren Sie Ihre Workload-Identitäten — Verwenden Sie diese Option
aws 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 -
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>
-
-
IAM-Richtlinien erstellen — Schreiben Sie IAM-Richtlinien, die angeben, welche Workload-Identitäten auf welche Anmeldeinformationsanbieter zugreifen können
-
Richtlinien an Rollen anhängen — Ordnen Sie die Richtlinien den IAM-Rollen zu, die von Ihren Agenten oder Anwendungen verwendet werden
-
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
ResourceBlock 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
DenyAnweisungen, 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