mcpField
C
cloud-create-project

cloud-create-project

github.com/elasticクラウド・DevOps6022.7k 回インストール今日更新
リポジトリ

cloud-create-project について

Serverless REST API を使って Elastic Cloud Serverless プロジェクトを作成するスキルです。作成前の種類と設定の確認、作成、準備状況の確認、認証情報の管理を案内します。

主な機能

  1. 01Elasticsearch、observability、security プロジェクトの作成
  2. 02作成前の種類と設定の確認
  3. 03リージョンと製品ティアの選択
  4. 04プロジェクト初期化の完了待ち
  5. 05認証情報とエンドポイントの安全な保存

活用シーン

  1. 01検索やベクトル処理向け Serverless プロジェクトの作成
  2. 02observability または security プロジェクトの作成
  3. 03後続操作向けの認証情報とエンドポイントの準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/elastic/agent-skills --skill cloud-create-project

インストール後、Claude Code で/cloud-create-projectを入力して読み込まれたか確認します。

同梱ファイルreferences/api-reference.mdscripts/create-project.py

詳細

サーバーレスプロジェクトの作成

Serverless REST API を使用して Elastic Cloud のサーバーレスプロジェクトを作成します。プロジェクトの一覧表示、更新、削除などの日常的な運用には、cloud-manage-project スキルを使用してください。

前提条件と権限

  • EC_API_KEY が設定されていることを確認してください。設定されていない場合は、最初に cloud-setup スキルを実行してください。
  • プロジェクトを作成するには、Admin または Organization owner ロールを持つ Cloud API キーが必要です。
  • このスキルでは、ロールの事前確認は行いません。要求された操作を試行し、API に認可を確認させてください。API が認可エラー(例:403 Forbidden)を返した場合は、処理を中止し、ユーザーに指定した API キーの権限を確認するよう依頼してください。
手動セットアップの代替手順(cloud-setup を利用できない場合)

このスキルが単独でインストールされていて cloud-setup を利用できない場合は、コマンドを実行する前に Cloud の環境変数を手動で設定するようユーザーに案内してください。チャットで API キーを貼り付けるようユーザーに求めてはいけません。

変数必須説明
EC_API_KEYはいプロジェクト作成操作に使用する Elastic Cloud API キーです。
EC_BASE_URLいいえCloud API のベース URL です(デフォルト:https://api.elastic-cloud.com)。

注: EC_API_KEY が設定されていない場合、またはユーザーがまだ Cloud API キーを持っていない場合は、まず Elastic Cloud アカウントを持っているか確認してください。持っていない場合は、Elastic Cloud の無料トライアルの開始を提案してください。クレジットカード不要で、14 日間すべての機能を利用できます。登録後、Elastic Cloud API キーでキーを生成し、以下の手順でローカルに設定するよう案内してください。

推奨方法(エージェントに適しています):プロジェクトのルートに .env ファイルを作成します。

EC_API_KEY=your-api-key
EC_BASE_URL=https://api.elastic-cloud.com

すべての cloud/* スクリプトは、作業ディレクトリの .env を自動的に読み込みます。

別の方法:ターミナルで直接エクスポートします。

export EC_API_KEY="<your-cloud-api-key>"
export EC_BASE_URL="https://api.elastic-cloud.com"

ターミナルでエクスポートした値は、別々のシェルセッションで実行されるサンドボックス化されたエージェントから見えない場合があります。そのため、エージェントを使用する場合は .env を推奨します。

重要な原則

  • チャットで秘密情報を表示しないでください。 API キー、パスワード、認証情報を会話のメッセージやエージェントの思考内で表示、記録、再掲しないでください。代わりに .elastic-credentials ファイルを確認するようユーザーに案内してください。管理者パスワードをチャット履歴、思考のトレース、エージェントの出力に含めてはいけません。
  • 作成前に確認してください。 プロジェクト設定を必ずユーザーに提示し、作成スクリプトを実行する前に確認を求めてください。
  • 管理者の認証情報は API キーの作成にのみ使用してください。 スクリプトは、スコープ付き API キーの初期設定用に admin パスワードを .elastic-credentials に保存します。admin ユーザーはすべての権限を持ち、サーバーレスでは変更できません。管理者の認証情報を Elasticsearch の直接操作(クエリ、インデックス作成など)に使用してはいけません。必ず先にスコープ付き API キーを作成してください(ステップ 8 を参照)。load-credentials コマンドはデフォルトで管理者の認証情報を除外します。--include-admin はステップ 7/8 の間のみ使用し、API キーの作成後はこれを付けずに再読み込みしてください。チャットで .elastic-credentials の内容を読み取ったり、表示したりしてはいけません。
  • 認証情報を紛失した場合は復旧してください。 スクリプトが .elastic-credentials の書き込みに失敗した場合(ディスク容量不足、権限不足など)、保存が不完全な可能性があります。まず .elastic-credentials でパスワードを確認してください。見つからない場合は、cloud-manage-project スキルの reset-credentials コマンドを使用して、新しいパスワードを生成してください。
  • リージョンは後から変更できません。 プロジェクト作成後、リージョンを変更することはできません。
  • 自動の準備状況チェックを優先してください。 作成スクリプトに --wait を渡し、フェーズが initializing から initialized に変わるまでポーリングしてください。--wait を利用できない場合に限り、ステータスエンドポイントを手動でポーリングしてください。

プロジェクトの種類

種類説明主なエンドポイント
elasticsearch検索、分析、ベクトルワークロードElasticsearch、Kibana
observabilityログ、メトリクス、トレース、APMElasticsearch、Kibana、APM、OTLP
securitySIEM、エンドポイント保護、クラウドセキュリティElasticsearch、Kibana、OTLP
プロジェクトの種類の推定

ユーザーのリクエストを適切な --type の値に対応付けます。

ユーザーの発言--type
「検索プロジェクト」、「elasticsearch プロジェクト」、ベクトル検索elasticsearch
「オブザーバビリティプロジェクト」、「o11y」、ログ、メトリクス、トレース、APMobservability
「セキュリティプロジェクト」、「SIEM」、検知、エンドポイント保護security

どの種類にも暗黙にデフォルト設定しないでください。ユーザーが種類を指定していない場合は、会話の文脈から推定します (たとえば、ログの取り込みについて話している場合は observability、検知や SIEM について話している場合は security、 検索やベクトルワークロードについて話している場合は elasticsearch を提案します)。必ず推定した種類をユーザーに提示し、 続行する前に確認を求めてください。文脈から種類を推定できない場合は、ユーザーに選択を求めてください。

製品ティア

オブザーバビリティプロジェクトとセキュリティプロジェクトでは、--product-tier フラグを使用できます。ユーザーが別のティアを明示的に 指定しない限り、デフォルトは complete です。

プロジェクトの種類ティア説明
observabilitycompleteオブザーバビリティのフルスイート(ログ、メトリクス、トレース、APM)
observabilitylogs_essentialsログ管理のみ
securitycompleteセキュリティのフルスイート(SIEM、クラウド、エンドポイント)
securityessentialsコア SIEM のみ

Elasticsearch プロジェクトには製品ティアがありません。代わりに --optimized-for を使用してください。

適切なデフォルト設定

作成する前に、これらのデフォルト設定をユーザーに提示してください。使用するか変更するかを尋ねます。

設定デフォルト
リージョンgcp-us-central1

プロジェクトの種類はユーザーに確認する必要があります。デフォルトを想定しないでください。上記の「プロジェクトの種類の推定」を参照してください。

ユーザーが vector を明示的にリクエストしない限り、常に --optimized-for general_purpose を使用してください。 vector オプションを先回りして提案しないでください。

ユーザーが名前を指定しない場合は、名前を尋ねてください。名前は必須です。

ワークフロー:プロジェクトの作成

Project Creation:
- [ ] Step 1: Verify API key is set
- [ ] Step 2: Present defaults and confirm with user
- [ ] Step 3: List available regions (optional)
- [ ] Step 4: Create the project
- [ ] Step 5: Save credentials and endpoints
- [ ] Step 6: Wait for project to initialize
- [ ] Step 7: Set environment variables
- [ ] Step 8: Recommend creating a scoped API key
ステップ 1:API キーが設定されていることを確認する
echo "${EC_API_KEY:?Not set}"

EC_API_KEY が設定されていない場合は、認証とデフォルト設定を構成するために、まず cloud-setup スキルを実行してください。

ステップ 2:概要を提示してユーザーに確認する

概要を提示する前に、プロジェクトの種類がユーザーによって明示的に確認されていることを確認してください。種類が指定されていない場合は、 会話の文脈から推定して提案します。文脈が曖昧な場合は、elasticsearch、observability、security から選択するようユーザーに求めてください。

作成前に、必ず確認用の概要を提示してください。プロジェクトの種類に応じて、異なる項目を含めます。

Elasticsearch プロジェクト:

Project Summary:
  Type:          elasticsearch
  Name:          my-project
  Region:        gcp-us-central1

オブザーバビリティプロジェクト:

Project Summary:
  Type:          observability
  Name:          my-project
  Region:        gcp-us-central1
  Product tier:  complete

セキュリティプロジェクト:

Project Summary:
  Type:          security
  Name:          my-project
  Region:        gcp-us-central1
  Product tier:  complete

続行する前に、各値を確認するか変更するようユーザーに尋ねてください。

ステップ 3:利用可能なリージョンを一覧表示する(任意)
python3 skills/cloud/create-project/scripts/create-project.py list-regions

出力はクラウドプロバイダー(AWS、Azure、GCP)ごとにグループ化され、アルファベット順に並んでいます。* が付いたリージョンでは、 プロジェクトを作成できません。

ステップ 4:プロジェクトを作成する
python3 skills/cloud/create-project/scripts/create-project.py create \
  --type elasticsearch \
  --name "my-project" \
  --region gcp-us-central1 \
  --optimized-for general_purpose \
  --wait

Elasticsearch プロジェクトでは、常に --optimized-for general_purpose を指定してください。ユーザーから明示的に要求された場合に限り、vector を使用してください。

オブザーバビリティプロジェクトおよびセキュリティプロジェクトでは、ユーザーから別のティアを明示的に要求された場合を除き、--product-tier complete を指定してください。

スクリプトがプロジェクトの準備が整うまで自動的にポーリングするよう、常に --wait を指定してください。

ステップ 5:認証情報とエンドポイントを保存する

スクリプトは作業ディレクトリにある .elastic-credentials に認証情報を自動的に書き込みます。パスワードは stdout の JSON 出力では伏せられます。

保存に成功した場合、ユーザーに次のように伝えてください。

Credentials saved to .elastic-credentials — open that file to retrieve your password.

チャットで .elastic-credentials の内容を読み取ったり、cat したり、表示したりしないでください。

保存に失敗した場合、スクリプトは stderr にエラーを出力します。.elastic-credentials が存在し、パスワードが含まれているか確認してください(部分的に書き込まれている可能性があります)。パスワードが見つからない場合、またはファイルが存在しない場合は、ただちに cloud-manage-project スキルの reset-credentials コマンドを実行して、新しいパスワードを生成してください。

作成結果には、次の情報も含まれています。

  • プロジェクト ID — 以降のすべての操作に必要です
  • Cloud ID — クライアントライブラリ用です
  • Elasticsearch および Kibana のエンドポイント — チャットで表示しても安全です

管理者認証情報は初期ブートストラップ専用です。継続的なアクセスには、スコープを限定した API キーの作成を推奨してください(ステップ 8)。

ステップ 6:プロジェクトの初期化を待つ

--wait を指定すると(推奨)、プロジェクトフェーズが initialized になるまでスクリプトが自動的にポーリングします。手動でのポーリングは不要です。

エージェントを --wait なしで実行した場合は、手動でポーリングしてください。

python3 skills/cloud/create-project/scripts/create-project.py status \
  --type elasticsearch \
  --id <project-id>

phase が initializing から initialized に変わるまで繰り返してください。

ステップ 7:環境変数を設定する

作成スクリプトは、プロジェクト名をヘッダーに含めた状態で、認証情報とエンドポイントを .elastic-credentials に保存します。ステップ 8 で API キーを作成する際に管理者認証情報を使用できるよう、--include-admin を指定して現在のシェルに読み込んでください。

eval $(python3 skills/cloud/manage-project/scripts/manage-project.py load-credentials \
  --name "<project-name>" --include-admin)

これにより、ELASTICSEARCH_URL、KIBANA_URL、プロジェクトの種類に応じたエンドポイント(APM_URL、INGEST_URL)、および API キーのブートストラップに必要な管理者用の ELASTICSEARCH_USERNAME/ELASTICSEARCH_PASSWORD が設定されます。

ステップ 8:スコープを限定した API キーを作成する

admin ユーザーにはすべての権限があり、サーバーレスプロジェクトでは変更できません。**管理者認証情報を使った Elasticsearch 操作に進まないでください。**ユーザーが必要とする権限のみを持つ、スコープを限定した Elasticsearch API キーを作成してください。

elasticsearch-authn スキルが利用可能な場合は、API キーの作成に使用してください。このスキルはライフサイクル全体(作成、権限付与、無効化、照会)をカバーし、権限のスコープを適切に設定します。このスキルがインストールされていない場合は、インストールするか、Kibana > Stack Management > API keys から手動で API キーを作成するようユーザーに依頼してください。作成後、プロジェクト固有のヘッダー形式を使用して API キーを .elastic-credentials に保存し(manage-project スキルの「認証情報ファイルの形式」セクションを参照)、その後、管理者認証情報を環境変数から取り除くために --include-admin なしで再読み込みしてください。

eval $(python3 skills/cloud/manage-project/scripts/manage-project.py load-credentials \
  --name "<project-name>")

例

デフォルト設定で Elasticsearch プロジェクトを作成する
python3 skills/cloud/create-project/scripts/create-project.py create \
  --type elasticsearch \
  --name "my-search-project" \
  --region gcp-us-central1 \
  --optimized-for general_purpose \
  --wait
オブザーバビリティプロジェクトを作成する
python3 skills/cloud/create-project/scripts/create-project.py create \
  --type observability \
  --name "prod-o11y" \
  --region aws-eu-west-1 \
  --product-tier complete \
  --wait
セキュリティプロジェクトを作成する
python3 skills/cloud/create-project/scripts/create-project.py create \
  --type security \
  --name "siem-prod" \
  --region gcp-us-central1 \
  --product-tier complete \
  --wait

ガイドライン

  • EC_API_KEY が設定されていない場合は、最初に cloud-setup スキルを実行してください。
  • 作成する前に、必ずユーザーにプロジェクトの構成を確認してください。
  • パスワードや API キーをチャットに表示しないでください。ユーザーに .elastic-credentials を参照するよう案内してください。
  • プロジェクトの種類をデフォルトで決めないでください。文脈から推測し、ユーザーに確認してください。
  • 最適化のデフォルトは general_purpose にしてください。ユーザーが明示的に希望した場合にのみ vector を使用してください。
  • オブザーバビリティおよびセキュリティのプロジェクトでは、製品ティアのデフォルトを complete にしてください。ユーザーが明示的に希望した場合にのみ logs_essentials または essentials を使用してください。
  • スクリプトがプロジェクトの準備完了までポーリングするよう、必ず --wait を指定してください。
  • 認証情報の保存に失敗した場合は、直ちに cloud-manage-project スキルを使って認証情報をリセットしてください。
  • 作成後は、管理者認証情報に頼るのではなく、スコープを限定した API キーを作成するよう推奨してください。
  • 作成後にリージョンを変更することはできません。先に選択内容を確認してください。

スクリプトのリファレンス

コマンド説明
create新しいサーバーレスプロジェクトを作成します
statusプロジェクトの初期化状態を取得します
list-regions利用可能なリージョンを一覧表示します
フラグコマンド説明
--typecreate, statusプロジェクトの種類:elasticsearch、observability、security
--namecreateプロジェクト名(必須)
--regioncreateリージョン ID(デフォルト:gcp-us-central1)
--idstatusプロジェクト ID
--optimized-forcreateElasticsearch のサブタイプ:general_purpose または vector
--product-tiercreateオブザーバビリティ/セキュリティのティア(「製品ティア」セクションを参照)
--waitcreate終了前にプロジェクトが初期化されるまでポーリングします

環境変数

変数必須説明
EC_API_KEYはいElastic Cloud API キー
EC_BASE_URLいいえCloud API のベース URL(デフォルト:https://api.elastic-cloud.com)
ELASTICSEARCH_URL出力Elasticsearch URL(作成後に load-credentials で読み込みます)
KIBANA_URL出力Kibana URL(作成後に load-credentials で読み込みます)
APM_URL出力APM エンドポイント(オブザーバビリティプロジェクトのみ)
INGEST_URL出力OTLP 取り込みエンドポイント(オブザーバビリティおよびセキュリティプロジェクト)
ELASTICSEARCH_API_KEY出力Elasticsearch API キー(ステップ 8 で作成し、load-credentials で読み込みます)

その他のリソース

  • API の詳細、リクエスト/レスポンスのスキーマ、プロジェクトの種類のオプションについては、 references/api-reference.md を参照してください。

コメント