

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Bedrock エージェントを使用してテキストベースのプロンプトで Amazon EKS でのアクセスエントリコントロールの作成を自動化する
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks"></a>

*Amazon Web Services、Keshav Ganesh と Sudhanshu Saurav*

## 概要
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-summary"></a>

組織内で複数のチームが共有 Amazon Elastic Kubernetes Service (Amazon EKS) クラスターを操作する必要がある場合、アクセスコントロールとリソースプロビジョニングの管理が課題となります。Amazon EKS などのマネージド Kubernetes サービスにより、クラスターオペレーションは簡素化されました。ただし、チームのアクセスとリソースのアクセス許可を管理するための管理オーバーヘッドは、依然として複雑で時間がかかります。

このパターンでは、Amazon Bedrock エージェントを活用して Amazon EKS クラスターのアクセス管理を自動化する方法を示します。この自動化により、開発チームはアクセスコントロールの設定や管理ではなく、コアアプリケーションの開発に集中できます。Amazon Bedrock エージェントをカスタマイズして、シンプルな自然言語プロンプトを使用してさまざまなタスク用のアクションを実行できます。

 AWS Lambda 関数をアクショングループとして使用することで、Amazon Bedrock エージェントはユーザーアクセスエントリの作成やアクセスポリシーの管理などのタスクを処理できます。さらに、Amazon Bedrock エージェントは、クラスターで実行されているポッドの AWS Identity and Access Management (IAM) リソースへのアクセスを許可するポッド ID の関連付けを設定できます。このソリューションを使用すると、組織はシンプルなテキストベースのプロンプトで Amazon EKS クラスターの管理を合理化し、手作業によるオーバーヘッドを削減し、全体的な開発効率を向上させることができます。

## 前提条件と制限
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-prereqs"></a>

**前提条件**
+ アクティブ AWS アカウント。
+ デプロイプロセス用の確立された IAM [ロールとアクセス許可](https://docs.aws.amazon.com/bedrock/latest/userguide/security_iam_id-based-policy-examples.html)。これには、Amazon Bedrock 基盤モデル (FM) へのアクセス、Lambda 関数の作成、およびターゲット全体のその他の必要なリソースに対するアクセス許可が含まれます AWS アカウント。
+ Amazon Bedrock FMs AWS アカウント に対してアクティブな で[有効になっているアクセス](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html): Amazon Titan Text Embeddings V2 および Anthropic Claude 3 Haiku。
+ AWS Command Line Interface (AWS CLI) バージョン 2.9.11 以降、[インストール](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)および[設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)済み。
+ [インストール](https://eksctl.io/installation/)済の eksctl 0.194.0 以降。

**制限事項**
+ 上記の手法をスムーズに導入し、効果的に使用するために、トレーニングとドキュメントが必要になる場合があります。Amazon Bedrock、Amazon EKS、Lambda、Amazon OpenSearch Service、[OpenAPI](https://www.openapis.org/what-is-openapi) を使用するには、開発者と DevOps チームは大幅な学習が必要になります。
+ 一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。すべてのリージョンの可用性については、「[リージョン別の AWS サービス](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについては、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」を参照して、サービスのリンクを選択してください。

## アーキテクチャ
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-architecture"></a>

次の図表は、このパターンのアプリケーションのワークフローとアーキテクチャコンポーネントを示しています。

![\[Amazon Bedrock エージェントを使用して Amazon EKS でアクセスコントロールを作成するためのワークフローとコンポーネント。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/2c52b1ba-bbad-4a46-ab1e-10e69a0a66e7/images/c7981a86-f734-4c07-a2f7-63ad38b66ab6.png)


このソリューションでは、以下のステップを実行します。

1. ユーザーは、エージェントが処理してアクションを実行するための入力となるプロンプトまたはクエリを送信することで、Amazon Bedrock エージェントとやり取りします。

1. プロンプトに基づいて、Amazon Bedrock エージェントは OpenAPI スキーマをチェックし、ターゲットとする正しい API を特定します。Amazon Bedrock エージェントが正しい API コールを見つけた場合、これらのアクションを実装する Lambda 関数に関連付けられているアクショングループにリクエストが送信されます。

1. 関連する API が見つからない場合、Amazon Bedrock エージェントは OpenSearch コレクションにクエリを実行します。OpenSearch コレクションは、*Amazon EKS ユーザーガイド*を含む Amazon S3 バケットから取得されたインデックス付きナレッジベースコンテンツを使用します。

1. OpenSearch コレクションは、関連するコンテキスト情報を Amazon Bedrock エージェントに返します。

1. 実行可能なリクエスト (API オペレーションに一致するリクエスト) の場合、Amazon Bedrock エージェントは仮想プライベートクラウド (VPC) 内で実行され、Lambda 関数をトリガーします。

1. Lambda 関数は、Amazon EKS クラスター内のユーザーの入力に基づいてアクションを実行します。

1. Lambda コードの Amazon S3 バケットには、Lambda 関数用に記述されたコードとロジックを持つアーティファクトが保存されます。

## ツール
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-tools"></a>

**AWS のサービス**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) は、主要な AI スタートアップや Amazon が提供する高パフォーマンスな基盤モデル (FM) を、統合 API を通じて利用できるようにするフルマネージド型サービスです。
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および 全体のライフサイクルを通じてリソースを管理するのに役立ちます AWS リージョン。
+ [Amazon Elastic Kubernetes Service (Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) を使用すると、独自の Kubernetes コントロールプレーンやノードをインストールまたは維持 AWS することなく、 で Kubernetes を実行できます。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) は、 AWS クラウドにおける OpenSearch クラスターのデプロイ、オペレーション、スケーリングを支援するマネージドサービスです。Amazon OpenSearch Service のコレクション機能は、データを整理し、Amazon Bedrock エージェントなどの AI アシスタントが使用できる包括的なナレッジベースを構築するのに役立ちます。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。

**その他のツール**
+ [eksctl](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html) – これは Amazon EKS で Kubernetes クラスターを作成および管理するコマンドラインユーティリティです。

**コードリポジトリ**

このパターンのコードは、GitHub 内の「[eks-access-controls-bedrock-agent](https://github.com/aws-samples/eks-access-controls-bedrock-agent.git)」リポジトリで入手できます。

## ベストプラクティス
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-best-practices"></a>
+ このパターンを実装する場合、可能な限り高レベルのセキュリティを維持します。Amazon EKS クラスターがプライベートであり、アクセス許可が制限されており、すべてのリソースが仮想プライベートクラウド (VPC) 内にあることを確認します。詳細については、Amazon EKS ドキュメントの「[セキュリティのベストプラクティス](https://docs.aws.amazon.com/eks/latest/best-practices/security.html)」を参照してください。
+ 可能な限り AWS KMS [カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)を使用し、制限付きアクセス許可を付与します。
+ 最小特権の原則に従い、タスク実行に必要最小限の権限を付与します。詳細については、IAM ドキュメントの「[最小限の特権を認める。](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv)」と「[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

## エピック
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-epics"></a>

### 環境をセットアップする
<a name="set-up-the-environment"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| リポジトリのクローン作成 | このパターンのリポジトリのクローンを作成するには、ローカルワークステーションで次のコマンドを実行します。<pre>git clone https://github.com/aws-samples/eks-access-controls-bedrock-agent.git</pre> | AWS DevOps | 
|  AWS アカウント ID を取得します。 |  AWS アカウント ID を取得するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html)このコマンドは AWS アカウント 、ID を `AWS_ACCOUNT`変数に保存します。 | AWS DevOps | 
| Lambda コード用の S3 バケットを作成します。 | このソリューションを実装するには、[アーキテクチャ](#using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-architecture)図に示されているように、さまざまな目的を果たす 3 つの Amazon S3 バケットを作成する必要があります。3 つの S3 バケットはそれぞれ、Lambda コード、ナレッジベース、OpenAPI スキーマ用です。Lambda コード用バケットを作成するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html)パッケージコマンドにより、以下を含む新しい CloudFormation テンプレート (`eks-access-controls-template.yaml`) が作成されます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html) | AWS DevOps | 
| ナレッジベース用の S3 バケットを作成します。 | ナレッジベース用の Amazon S3 バケットを作成するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html) | AWS DevOps | 
| OpenAPI スキーマ用の S3 バケットを作成します。 | OpenAPI スキーマ用の Amazon S3 バケットを作成するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html) | AWS DevOps | 

### CloudFormation スタックをデプロイする
<a name="deploy-the-cfnshort-stack"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CloudFormation スタックをデプロイします。 | CloudFormation スタックをデプロイするには、前に作成した CloudFormation テンプレートファイル `eks-access-controls-template.yaml` を使用します。詳しい手順については、CloudFormation ドキュメントの「[CloudFormation コンソールからスタックを作成する](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)」を参照してください。CloudFormation テンプレートを使用して OpenSearch インデックスをプロビジョニングするには、約 10 分かかります。スタックを作成したら、`VPC_ID` と `PRIVATE_SUBNET ID` を書き留めておきます。 | AWS DevOps | 
| Amazon EKS クラスターを作成します。 | VPC 内に Amazon EKS クラスターを作成するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html)期待される結果は次のとおりです。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html) | AWS DevOps | 

### Lambda 関数と Amazon EKS クラスターを接続する
<a name="connect-the-lam-function-and-the-eks-cluster"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Amazon EKS クラスターと Lambda 関数との間の接続を作成します。 | Lambda 関数が Amazon EKS クラスターと通信できるようにするネットワークおよび IAM アクセス許可を設定するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html) | AWS DevOps | 

### ソリューションをテストする
<a name="test-the-solution"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Amazon Bedrock エージェントをテストする | Amazon Bedrock エージェントをテストする前に、以下を必ず実行してください。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html)Amazon Bedrock エージェントにアクセスするには、次の手順を使用します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html)EKS Pod Identity の関連付けに対してアクションを実行するようにエージェントに依頼することもできます。詳細については、Amazon EKS ドキュメントの「[EKS Pod Identity がポッドに AWS のサービスへのアクセス権を付与する仕組みを学ぶ](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)」を参照してください。 | AWS DevOps | 

### クリーンアップ
<a name="clean-up"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| リソースをクリーンアップします。 | このパターンで作成されたリソースをクリーンアップするには、次の手順を使用します。各削除ステップが完了してから次のステップに進みます。この手順では、これらのスタックによって作成されたすべてのリソースを完全に削除します。先に進む前に、重要なデータをバックアップしていることを確認してください。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks.html) | AWS DevOps | 

## トラブルシューティング
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| 環境のセットアップ中にゼロ以外のエラーコードが返されます。 | コマンドを実行してこのソリューションをデプロイする際、正しいフォルダを使用していることを確認します。詳細については、このパターンのリポジトリにある [FIRST\$1DEPLOY.md](https://github.com/aws-samples/eks-access-controls-bedrock-agent/blob/main/FIRST_DEPLOY.md) ファイルを参照してください。 | 
| Lambda 関数がタスクを実行できません。 | Lambda 関数から Amazon EKS クラスターへの接続が正しく設定されていることを確認します。 | 
| エージェントプロンプトが API を認識しません。 | ソリューションをデプロイする 詳細については、このパターンのリポジトリにある [RE\$1DEPLOY.md](https://github.com/aws-samples/eks-access-controls-bedrock-agent/blob/main/RE_DEPLOY.md) ファイルを参照してください。 | 
| スタックが削除に失敗します。 | スタックの削除を試行すると、1 度目は失敗する可能性があります。この障害は、ナレッジベースのインデックスを作成する OpenSearch コレクション用に作成されたカスタムリソースの依存関係の問題が原因で発生する場合があります。スタックを削除するには、カスタムリソースを保持して削除オペレーションを再試行します。 | 

## 関連リソース
<a name="using-amazon-bedrock-agents-to-automate-creation-of-access-entry-controls-in-amazon-eks-resources"></a>

**AWS ブログ **
+ [簡素化された Amazon EKS アクセス管理コントロールの詳細](https://aws.amazon.com/blogs/containers/a-deep-dive-into-simplified-amazon-eks-access-management-controls/) 

**Amazon Bedrock ドキュメント**
+ [AI エージェントを使用してアプリケーションのタスクを自動化する](https://docs.aws.amazon.com/bedrock/latest/userguide/agents.html) 
+ [Amazon Bedrock エージェントの仕組み](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-how.html)
+ [エージェントの動作のテストとトラブルシューティング](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-test.html)
+ [アクショングループを使用して、エージェントが実行するアクションを定義する](https://docs.aws.amazon.com/bedrock/latest/userguide/agents-action-create.html) 

**Amazon EKS ドキュメント**
+ [Amazon EKS でのアクセスコントロールの仕組みについて説明します。](https://docs.aws.amazon.com/eks/latest/userguide/cluster-auth.html)