Verwenden Sie Amazon Bedrock-Agenten, um die Erstellung von Zugriffskontrollen in Amazon EKS durch textbasierte Eingabeaufforderungen zu automatisieren - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie Amazon Bedrock-Agenten, um die Erstellung von Zugriffskontrollen in Amazon EKS durch textbasierte Eingabeaufforderungen zu automatisieren

Erstellt von Keshav Ganesh (AWS) und Sudhanshu Saurav (AWS)

Übersicht

Organizations stehen vor Herausforderungen bei der Verwaltung der Zugriffskontrollen und der Ressourcenbereitstellung, wenn mehrere Teams mit einem gemeinsamen Amazon Elastic Kubernetes Service (Amazon EKS) -Cluster arbeiten müssen. Ein verwalteter Kubernetes-Service wie Amazon EKS hat den Clusterbetrieb vereinfacht. Der Verwaltungsaufwand für die Verwaltung des Teamzugriffs und der Ressourcenberechtigungen bleibt jedoch komplex und zeitaufwändig.

Dieses Muster zeigt, wie Amazon Bedrock-Agenten Ihnen helfen können, die Amazon EKS-Cluster-Zugriffsverwaltung zu automatisieren. Diese Automatisierung ermöglicht es Entwicklungsteams, sich auf die Entwicklung ihrer Kernanwendungen zu konzentrieren, anstatt sich mit der Einrichtung und Verwaltung der Zugriffskontrolle zu befassen. Sie können einen Amazon Bedrock-Agenten so anpassen, dass er mithilfe einfacher Eingabeaufforderungen in natürlicher Sprache Aktionen für eine Vielzahl von Aufgaben ausführt.

Durch die Verwendung von AWS Lambda Funktionen als Aktionsgruppen kann ein Amazon Bedrock-Agent Aufgaben wie das Erstellen von Benutzerzugriffseinträgen und das Verwalten von Zugriffsrichtlinien übernehmen. Darüber hinaus kann ein Amazon Bedrock-Agent Pod-Identitätszuordnungen konfigurieren, die den Zugriff auf AWS Identity and Access Management (IAM-) Ressourcen für die im Cluster laufenden Pods ermöglichen. Mit dieser Lösung können Unternehmen ihre Amazon EKS-Clusterverwaltung mit einfachen textbasierten Eingabeaufforderungen optimieren, den manuellen Aufwand reduzieren und die allgemeine Entwicklungseffizienz verbessern.

Voraussetzungen und Einschränkungen

Voraussetzungen

Einschränkungen

  • Möglicherweise sind Schulungen und Unterlagen erforderlich, um eine reibungslose Einführung und effektive Anwendung dieser Techniken zu gewährleisten. Die Verwendung von Amazon Bedrock, Amazon EKS, Lambda, Amazon OpenSearch Service und OpenAPI erfordert eine erhebliche Lernkurve für Entwickler und Teams. DevOps

  • Einige AWS-Services sind nicht in allen verfügbar. AWS-Regionen Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter AWS-Services nach Regionen. Informationen zu bestimmten Endpunkten finden Sie unter Service-Endpunkte und Kontingente. Wählen Sie dort den Link für den Service aus.

Architektur

Das folgende Diagramm zeigt den Workflow und die Architekturkomponenten für dieses Muster.

Workflow und Komponenten zur Erstellung von Zugriffskontrollen in Amazon EKS mit Amazon Bedrock-Agenten.

Diese Lösung führt die folgenden Schritte aus:

  1. Der Benutzer interagiert mit dem Amazon Bedrock-Agenten, indem er eine Aufforderung oder Anfrage sendet, die dem Agenten als Eingabe zur Bearbeitung und Ergreifung von Maßnahmen dient.

  2. Basierend auf der Aufforderung überprüft der Amazon Bedrock-Agent das OpenAPI-Schema, um die richtige API für das Ziel zu identifizieren. Wenn der Amazon Bedrock-Agent den richtigen API-Aufruf findet, wird die Anfrage an die Aktionsgruppe weitergeleitet, die der Lambda-Funktion zugeordnet ist, die diese Aktionen implementiert.

  3. Wenn keine relevante API gefunden wird, fragt der Amazon Bedrock-Agent die OpenSearch Sammlung ab. Die OpenSearch Sammlung verwendet indexierte Wissensdatenbankinhalte, die aus dem Amazon S3 S3-Bucket stammen, der das Amazon EKS-Benutzerhandbuch enthält.

  4. Die OpenSearch Sammlung sendet relevante Kontextinformationen an den Amazon Bedrock-Mitarbeiter zurück.

  5. Bei umsetzbaren Anfragen (solche, die einem API-Vorgang entsprechen) wird der Amazon Bedrock-Agent in einer Virtual Private Cloud (VPC) ausgeführt und löst die Lambda-Funktion aus.

  6. Die Lambda-Funktion führt eine Aktion aus, die auf den Eingaben des Benutzers im Amazon EKS-Cluster basiert.

  7. Der Amazon S3 S3-Bucket für den Lambda-Code speichert das Artefakt, für das der Code und die Logik für die Lambda-Funktion geschrieben wurden.

Tools

AWS-Services

  • Amazon Bedrock ist ein vollständig verwalteter Service, der Ihnen leistungsstarke Basismodelle (FMs) von führenden KI-Startups und Amazon über eine einheitliche API zur Verfügung stellt.

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten AWS-Konten Lebenszyklus über und zu verwalten. AWS-Regionen

  • Mit Amazon Elastic Kubernetes Service (Amazon EKS) können Sie Kubernetes ausführen, AWS ohne dass Sie Ihre eigene Kubernetes-Steuerebene oder Knoten installieren oder verwalten müssen.

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • Amazon OpenSearch Service ist ein verwalteter Service, der Sie bei der Bereitstellung, dem Betrieb und der Skalierung von OpenSearch Clustern in der unterstützt AWS Cloud. Die Sammlungsfunktion hilft Ihnen dabei, Ihre Daten zu organisieren und umfassende Wissensdatenbanken aufzubauen, die KI-Assistenten wie Amazon Bedrock-Agenten nutzen können.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

Andere Tools

  • eksctl ist ein Befehlszeilenprogramm zum Erstellen und Verwalten von Kubernetes-Clustern auf Amazon EKS.

Code-Repository

Der Code für dieses Muster ist im GitHub eks-access-controls-bedrock-agent-Repository verfügbar.

Bewährte Methoden

  • Achten Sie bei der Implementierung dieses Musters auf die höchstmögliche Sicherheit. Stellen Sie sicher, dass der Amazon EKS-Cluster privat ist, über eingeschränkte Zugriffsberechtigungen verfügt und dass sich alle Ressourcen in einer Virtual Private Cloud (VPC) befinden. Weitere Informationen finden Sie unter Bewährte Sicherheitsmethoden in der Amazon EKS-Dokumentation.

  • Verwenden Sie nach Möglichkeit vom AWS KMS Kunden verwaltete Schlüssel und gewähren Sie ihnen eingeschränkte Zugriffsberechtigungen.

  • Folgen Sie dem Prinzip der geringsten Rechte und gewähren Sie nur die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter Gewährung der geringsten Rechte und bewährte Methoden zur Sicherheit.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Klonen Sie das Repository

Um das Repository dieses Musters zu klonen, führen Sie den folgenden Befehl auf Ihrer lokalen Workstation aus:

git clone https://github.com/aws-samples/eks-access-controls-bedrock-agent.git
AWS DevOps

Holen Sie sich den AWS-Konto Ausweis.

Gehen Sie wie folgt vor, um die AWS-Konto ID zu erhalten:

  1. Öffnen Sie eine Shell im Stammordner des geklonten Repos,. eks-access-controls-bedrock-agent

  2. Um Ihre AWS-Konto ID zu erhalten, navigieren Sie zum geklonten Verzeichnis und führen Sie den folgenden Befehl aus:

    AWS_ACCOUNT=$(aws sts get-caller-identity --query "Account" --output text)

Dieser Befehl speichert Ihre AWS-Konto ID in der AWS_ACCOUNT Variablen.

AWS DevOps

Erstellen Sie den S3-Bucket für Lambda-Code.

Um diese Lösung zu implementieren, müssen Sie drei Amazon S3 S3-Buckets erstellen, die unterschiedlichen Zwecken dienen, wie im Architekturdiagramm dargestellt. Die S3-Buckets sind für Lambda-Code, eine Wissensdatenbank und ein OpenAPI-Schema vorgesehen.

Gehen Sie wie folgt vor, um den Lambda-Code-Bucket zu erstellen:

  1. Führen Sie den folgenden Befehl aus, um einen S3-Bucket für Lambda-Code zu erstellen:

    aws s3 mb s3://bedrock-agent-lambda-artifacts-${AWS_ACCOUNT} --region us-east-1
  2. Führen Sie den folgenden Befehl aus, um die Lambda-Code-Abhängigkeit zu installieren:

    cd eks-lambda npm install tsc cd .. && cd opensearch-lambda npm install tsc cd ..
  3. Führen Sie den folgenden Befehl aus, um den Code zu packen und in den S3-Bucket für Lambda hochzuladen:

    aws cloudformation package \ --template-file eks-access-controls.yaml \ --s3-bucket bedrock-agent-lambda-artifacts-${AWS_ACCOUNT} \ --output-template-file eks-access-controls-template.yaml \ --region us-east-1

Der Paketbefehl erstellt eine neue CloudFormation Vorlage (eks-access-controls-template.yaml), die Folgendes enthält:

  • Verweise auf den Lambda-Funktionscode, der in Ihrem S3-Bucket gespeichert ist.

  • Definitionen für die gesamte erforderliche AWS Infrastruktur, einschließlich VPC, Subnetze, Amazon Bedrock-Agent und Sammlung. OpenSearch Sie können diese Vorlage verwenden, um die komplette Lösung bereitzustellen, indem Sie CloudFormation

AWS DevOps

Erstellen Sie den S3-Bucket für die Wissensdatenbank.

Gehen Sie wie folgt vor, um den Amazon S3 S3-Bucket für die Wissensdatenbank zu erstellen:

  1. Führen Sie den folgenden Befehl aus, um den Amazon S3 S3-Bucket für die Wissensdatenbank zu erstellen:

    aws s3 mb s3://eks-knowledge-base-${AWS_ACCOUNT} --region us-east-1
  2. Führen Sie die folgenden Befehle aus, um das Amazon EKS-Benutzerhandbuch herunterzuladen und in einem Verzeichnis zu speichern:

    mkdir dataSource cd dataSource curl https://docs.aws.amazon.com/pdfs/eks/latest/userguide/eks-ug.pdf -o eks-user-guide.pdf
  3. Führen Sie den folgenden Befehl aus, um das Benutzerhandbuch in den S3-Bucket hochzuladen, den Sie in Schritt 1 erstellt haben:

    aws s3 cp eks-user-guide.pdf s3://eks-knowledge-base-${AWS_ACCOUNT} \ --region us-east-1 \
  4. Führen Sie den folgenden Befehl aus, um zum Stammverzeichnis zurückzukehren:

    cd ..
AWS DevOps

Erstellen Sie den S3-Bucket für das OpenAPI-Schema.

Gehen Sie wie folgt vor, um den Amazon S3 S3-Bucket für das OpenAPI-Schema zu erstellen:

  1. Führen Sie den folgenden Befehl aus, um den S3-Bucket zu erstellen:

    aws s3 mb s3://eks-openapi-schema-${AWS_ACCOUNT} --region us-east-1
  2. Führen Sie den folgenden Befehl aus, um das OpenAPI-Schema in den S3-Bucket hochzuladen:

    aws s3 cp openapi-schema.yaml s3://eks-openapi-schema-${AWS_ACCOUNT} --region us-east-1
AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie den CloudFormation Stack bereit.

Verwenden Sie zum Bereitstellen des CloudFormation Stacks die CloudFormation Vorlagendateieks-access-controls-template.yaml, die Sie zuvor erstellt haben. Ausführlichere Anweisungen finden Sie in der CloudFormation Dokumentation unter Erstellen eines Stacks von der CloudFormation Konsole aus.

Anmerkung

Die Bereitstellung des OpenSearch Indexes mit der CloudFormation Vorlage dauert etwa 10 Minuten.

Nachdem der Stapel erstellt wurde, notieren Sie sich die VPC_ID und PRIVATE_SUBNET ID s.

AWS DevOps

Erstellen Sie den Amazon EKS-Cluster.

Gehen Sie wie folgt vor, um den Amazon EKS-Cluster innerhalb der VPC zu erstellen:

  1. Erstellen Sie eine Kopie der eks-config.yaml Konfigurationsdatei und benennen Sie die Kopie alseks-deploy.yaml.

  2. Öffnen Sie eks-deploy.yaml in einem Texteditor. Ersetzen Sie dann die folgenden Platzhalterwerte durch Werte aus dem bereitgestellten Stack:VPC_ID,PRIVATE_SUBNET1, und PRIVATE_SUBNET2

  3. Führen Sie den folgenden Befehl aus, um den Cluster mithilfe des eksctl-Dienstprogramms zu erstellen:

    eksctl create cluster -f eks-deploy.yaml
    Anmerkung

    Dieser Clustererstellungsprozess kann bis zu 15 bis 20 Minuten dauern.

  4. Führen Sie die folgenden Befehle aus, um zu überprüfen, ob der Cluster erfolgreich erstellt wurde:

    aws eks describe-cluster --name --query "cluster.status" aws eks update-kubeconfig --name --region kubectl get nodes

Die erwarteten Ergebnisse lauten wie folgt:

  • Der Clusterstatus istACTIVE.

  • Der Befehl kubectl get nodes zeigt, dass sich alle Knoten im Ready Status befinden.

AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie eine Verbindung zwischen dem Amazon EKS-Cluster und der Lambda-Funktion her.

Gehen Sie wie folgt vor, um Netzwerk- und IAM-Berechtigungen einzurichten, damit die Lambda-Funktion mit dem Amazon EKS-Cluster kommunizieren kann:

  1. Um die IAM-Rolle zu identifizieren, die der Lambda-Funktion zugeordnet ist, öffnen Sie die AWS Management Console und suchen Sie nach der Lambda-Funktion mit dem Namen. bedrock-agent-eks-access-control Notieren Sie sich den Amazon-Ressourcennamen (ARN) der IAM-Rolle.

  2. Um einen Zugriffseintrag im Amazon EKS-Cluster für die IAM-Rolle der Lambda-Funktion zu erstellen, führen Sie den folgenden Befehl aus:

    aws eks create-access-entry --cluster-name eks-testing-cluster --principal-arn <principal-Role-ARN>
  3. Führen Sie den folgenden Befehl aus, um dieser Rolle AmazonEKSClusterAdminPolicy Berechtigungen zuzuweisen:

    aws eks associate-access-policy --cluster-name eks-testing-cluster --principal-arn <principal-Role-ARN> --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy --access-scope type=cluster

    Weitere Informationen finden Sie unter Zugriffsrichtlinien mit Zugriffseinträgen verknüpfen und Amazon EKSCluster AdminPolicy in der Amazon EKS-Dokumentation.

  4. Suchen Sie die Sicherheitsgruppe des Amazon EKS-Clusters. Fügen Sie eine Regel für eingehenden Datenverkehr hinzu, um eingehenden Netzwerkverkehr von der Lambda-Funktion zum Amazon EKS-Cluster zuzulassen.

    Verwenden Sie die folgenden Werte für die Regel für eingehenden Datenverkehr:

AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Testen Sie den Amazon Bedrock-Agenten.

Bevor Sie den Amazon Bedrock-Agenten testen, stellen Sie sicher, dass Sie Folgendes tun:

  • Testen Sie zuerst mit Rollen, die nicht zur Produktion gehören.

  • Dokumentieren Sie alle Änderungen, die am Clusterzugriff vorgenommen wurden.

  • Planen Sie, die Änderungen bei Bedarf rückgängig zu machen.

Gehen Sie wie folgt vor, um auf den Amazon Bedrock-Agenten zuzugreifen:

  1. Melden Sie sich bei der Rolle AWS Management Console Using an IAM mit Amazon Bedrock-Berechtigungen an und öffnen Sie die Amazon Bedrock-Konsole unter. https://console.aws.amazon.com/bedrock/

  2. Wählen Sie im linken Navigationsbereich Agenten aus. Wählen Sie dann im Abschnitt Agents Ihren konfigurierten Agenten aus.

  3. Um den Agenten zu testen, probieren Sie die folgenden Beispielaufforderungen aus, in denen Sie den ARN durch einen tatsächlichen IAM-Rollen-ARN Principal-ARN-OF-ROLE ersetzen:

  • Verwenden Sie die folgende Eingabeaufforderung, um einen Zugriffseintrag für eine beliebige IAM-Rolle zu erstellen, der Sie Zugriff auf den EKS-Cluster gewähren möchten: Create an access entry in cluster eks-testing-new for a role whose principal arn is <Principal-ARN-OF-ROLE> with access policy as AmazonEKSAdminPolicy

    Erwartetes Ergebnis:

    • Der Agent sollte die Erstellung des Zugriffseintrags bestätigen.

    • Überprüfen Sie zur Überprüfung die Amazon EKS-API AWS Management Console oder verwenden Sie die Amazon EKS-API und führen Sie den folgenden Befehl aus: aws eks list-access-entries --cluster-name ekscluster

  • Verwenden Sie die folgende Eingabeaufforderung, um den von Ihnen erstellten Zugriffseintrag zu beschreiben: Describe an access entry in cluster eks-testing-new whose principal arn is <Principal-ARN-OF-ROLE>

    Erwartetes Ergebnis:

    • Der Agent sollte Details zum Zugriffseintrag zurückgeben.

    • Die Details sollten mit den Angaben übereinstimmen, die Sie zuvor für den Zugriffseintrag konfiguriert haben.

  • Verwenden Sie die folgende Eingabeaufforderung, um den von Ihnen erstellten Zugriffseintrag zu löschen: Delete the access entry in cluster eks-testing-new whose principal arn is <Principal-ARN-OF-ROLE>

    Erwartetes Ergebnis:

    • Der Agent sollte das Löschen des Zugangseintrags bestätigen.

    • Überprüfen Sie zur Überprüfung die Amazon EKS-API AWS Management Console oder verwenden Sie die Amazon EKS-API und führen Sie den folgenden Befehl aus: aws eks list-access-entries --cluster-name ekscluster

Sie können den Agenten auch bitten, Aktionen für EKS Pod Identity-Verknüpfungen auszuführen. Weitere Informationen finden Sie AWS-Services in der Amazon EKS-Dokumentation unter Erfahren Sie, wie EKS Pod Identity Pods Zugriff gewährt.

AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Bereinigen von Ressourcen.

Gehen Sie wie folgt vor, um die Ressourcen zu bereinigen, die durch dieses Muster erstellt wurden. Warten Sie, bis jeder Löschschritt abgeschlossen ist, bevor Sie mit dem nächsten Schritt fortfahren.

Warnung

Durch dieses Verfahren werden alle Ressourcen, die von diesen Stacks erstellt wurden, dauerhaft gelöscht. Stellen Sie sicher, dass Sie alle wichtigen Daten gesichert haben, bevor Sie fortfahren.

  1. Führen Sie den folgenden Befehl aus, um den Amazon EKS-Cluster zu löschen:

    eksctl delete cluster -f eks-deploy.yaml
    Anmerkung

    Dieser Vorgang kann 15 bis 20 Minuten in Anspruch nehmen.

  2. Führen Sie die folgenden Befehle aus, um die Amazon S3 S3-Buckets zu löschen:

    • Um den Lambda-Bucket zu leeren:

      aws s3 rm s3://bedrock-agent-lambda-artifacts-${AWS_ACCOUNT} --recursive
    • Um den Wissensdatenbank-Bucket zu leeren:

      aws s3 rm s3://eks-knowledge-base-${AWS_ACCOUNT} –recursive
    • Um den OpenAPI-Schema-Bucket zu leeren:

      aws s3 rm s3://bedrock-agent-openapi-schema-${AWS_ACCOUNT} –recursive
    • Um die leeren Buckets zu löschen:

      aws s3 rb s3://bedrock-agent-lambda-artifacts-${AWS_ACCOUNT} aws s3 rb s3://eks-knowledge-base-${AWS_ACCOUNT} aws s3 rb s3://bedrock-agent-openapi-schema-${AWS_ACCOUNT}
  3. Führen Sie den folgenden Befehl aus, um den CloudFormation Stack zu löschen:

    aws cloudformation delete-stack \ --stack-name
  4. Führen Sie den folgenden Befehl aus, um das Löschen des Amazon EKS-Clusters zu überprüfen:

    eksctl get clusters
  5. Führen Sie die folgenden Befehle aus, um das Löschen der Amazon S3 S3-Buckets zu überprüfen:

    • Um das Löschen des Lambda-Buckets zu überprüfen:

      aws s3 ls | grep "bedrock-agent-lambda-artifacts"
    • Um das Löschen des Knowledge Base-Buckets zu überprüfen:

      aws s3 ls | grep "eks-knowledge-base"
    • Um das Löschen des OpenAPI-Schema-Buckets zu überprüfen:

      aws s3 ls | grep "bedrock-agent-openapi-schema"
  6. Führen Sie den folgenden Befehl aus, um das Löschen des Stacks zu überprüfen:

    aws cloudformation list-stacks \--query 'StackSummaries[?StackName==``]'

    Wenn der Stack nicht gelöscht werden kann, finden Sie weitere Informationen unter Problembehandlung.

AWS DevOps

Fehlerbehebung

ProblemLösung

Bei der Einrichtung der Umgebung wird ein Fehlercode ungleich Null zurückgegeben.

Stellen Sie sicher, dass Sie den richtigen Ordner verwenden, wenn Sie einen Befehl zur Bereitstellung dieser Lösung ausführen. Weitere Informationen finden Sie in der Datei First_Deploy.md im Repository dieses Patterns.

Die Lambda-Funktion ist nicht in der Lage, die Aufgabe zu erledigen.

Stellen Sie sicher, dass die Konnektivität zwischen der Lambda-Funktion und dem Amazon EKS-Cluster korrekt eingerichtet ist.

Die Eingabeaufforderungen des Agenten erkennen das nicht. APIs

Stellen Sie die Lösung erneut bereit. Weitere Informationen finden Sie in der Datei RE_DEPLOY.md im Repository dieses Patterns.

Der Stapel kann nicht gelöscht werden.

Ein erster Versuch, den Stapel zu löschen, schlägt möglicherweise fehl. Dieser Fehler kann aufgrund von Abhängigkeitsproblemen mit der benutzerdefinierten Ressource auftreten, die für die OpenSearch Sammlung erstellt wurde, die die Indexierung für die Wissensdatenbank durchführt. Um den Stapel zu löschen, wiederholen Sie den Löschvorgang, indem Sie die benutzerdefinierte Ressource beibehalten.

Zugehörige Ressourcen

AWS Blog

Dokumentation zu Amazon Bedrock

Amazon EKS-Dokumentation