cloud-create-project について
Serverless REST API を使って Elastic Cloud Serverless プロジェクトを作成するスキルです。作成前の種類と設定の確認、作成、準備状況の確認、認証情報の管理を案内します。
主な機能
- 01Elasticsearch、observability、security プロジェクトの作成
- 02作成前の種類と設定の確認
- 03リージョンと製品ティアの選択
- 04プロジェクト初期化の完了待ち
- 05認証情報とエンドポイントの安全な保存
活用シーン
- 01検索やベクトル処理向け Serverless プロジェクトの作成
- 02observability または security プロジェクトの作成
- 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 | ログ、メトリクス、トレース、APM | Elasticsearch、Kibana、APM、OTLP |
security | SIEM、エンドポイント保護、クラウドセキュリティ | Elasticsearch、Kibana、OTLP |
プロジェクトの種類の推定
ユーザーのリクエストを適切な --type の値に対応付けます。
| ユーザーの発言 | --type |
|---|---|
| 「検索プロジェクト」、「elasticsearch プロジェクト」、ベクトル検索 | elasticsearch |
| 「オブザーバビリティプロジェクト」、「o11y」、ログ、メトリクス、トレース、APM | observability |
| 「セキュリティプロジェクト」、「SIEM」、検知、エンドポイント保護 | security |
どの種類にも暗黙にデフォルト設定しないでください。ユーザーが種類を指定していない場合は、会話の文脈から推定します
(たとえば、ログの取り込みについて話している場合は observability、検知や SIEM について話している場合は security、
検索やベクトルワークロードについて話している場合は elasticsearch を提案します)。必ず推定した種類をユーザーに提示し、
続行する前に確認を求めてください。文脈から種類を推定できない場合は、ユーザーに選択を求めてください。
製品ティア
オブザーバビリティプロジェクトとセキュリティプロジェクトでは、--product-tier フラグを使用できます。ユーザーが別のティアを明示的に
指定しない限り、デフォルトは complete です。
| プロジェクトの種類 | ティア | 説明 |
|---|---|---|
observability | complete | オブザーバビリティのフルスイート(ログ、メトリクス、トレース、APM) |
observability | logs_essentials | ログ管理のみ |
security | complete | セキュリティのフルスイート(SIEM、クラウド、エンドポイント) |
security | essentials | コア 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 | 利用可能なリージョンを一覧表示します |
| フラグ | コマンド | 説明 |
|---|---|---|
--type | create, status | プロジェクトの種類:elasticsearch、observability、security |
--name | create | プロジェクト名(必須) |
--region | create | リージョン ID(デフォルト:gcp-us-central1) |
--id | status | プロジェクト ID |
--optimized-for | create | Elasticsearch のサブタイプ:general_purpose または vector |
--product-tier | create | オブザーバビリティ/セキュリティのティア(「製品ティア」セクションを参照) |
--wait | create | 終了前にプロジェクトが初期化されるまでポーリングします |
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
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 を参照してください。