人間であれば、本番環境のデータベースとバックアップをすべて削除するような操作は、通常慎重に判断するものです。しかし、AIエージェントは与えられた指示に従い、そのような操作も実行してしまう可能性があります。また、コードベース内で認証情報に不整合があっても、AIエージェントが必ずしもそれを確認するとは限りません。

適切な安全策がなければ、AIエージェントは問題に気づかず、そのまま処理を進めてしまいます。2026年4月にPocketOSで発生した事例がまさにこれに当たります。この事例で問題だったのは、AIエージェントそのものではなく、運用を支える仕組みです。AIエージェントを活用したワークフローでは、適切なインフラと管理体制を整え、人間による監督を組み込むことが重要です。

今回は、Kinstaの機能を活用して、AIエージェントにこうした安全策を設定する方法を見ていきます。Kinsta APIとMyKinstaの両方を活用することで、AIエージェントに任せる作業が増えても、破壊的な操作には厳格なチェックを設け、人間の承認を必須とする仕組みを構築できます。

AIエージェントに本番環境へのアクセスを許可するリスク

一般的なスクリプトとAIエージェントでは、問題が発生した際の挙動が異なります。スクリプトの場合、通常は画面にエラーが表示されます。WordPressの「死の真っ白画面」が発生したとしても、画面上で問題を確認できます。これは、よほど特殊なケースを除き、スクリプトにはエラー処理が組み込まれているためです。

一方、AIは与えられたタスクを遂行しようとする性質があるため、AIエージェントは内部でエラーが発生していても、それを報告せず、処理が成功したと伝えることがあります。モデルがユーザーの目的達成を優先しようとすることで、こうした問題は現在も発生しており、実際には得られていない結果を生成・報告してしまうケースもあります。

WordPressでも、AIエージェントが作業の一環として変更履歴、APIレスポンス、サイトから収集したコンテンツなどを読み取る場合、同様のリスクにさらされます。

2026年4月には、Essential PluginによってWordPressプラグインにバックドアが仕込まれ、攻撃が阻止されるまでに40万以上のサイトに悪意のあるコードが配信される事件が発生しました。ただし、攻撃を阻止しただけでは、すでに侵害されたサイトの問題は解決しません。

ワークフローの一環としてプラグインを自動更新するAIエージェントは、正規の更新と悪意のあるコードが仕込まれた更新を区別できません。ステージング環境での事前確認を組み込んでいなければ、同様の攻撃を受ける可能性があります。

Opsin Labsの2026年のAIエージェント導入に関するレポートでは、AIエージェントの60%に必要以上の権限が付与されていることが指摘されています。これは、WordPressの運用担当者に過剰な権限を与えることで生じる従来の問題が、AIエージェントにも広がっていることを示しています。

ステージング環境を活用してAIエージェントのミスによる影響を最小限に抑える方法

AIエージェントのワークフローにステージング環境での確認を組み込むことで、AIエージェントが行った変更を本番環境に反映する前に、その内容を検証できます。たとえば、開発者が計画的に変更を加える場合、どのような変更が行われるかを事前に把握しています。

一方、複数のステップからなるタスクを実行するAIエージェントは、与えられた指示に従ってタスクを完了しようとします。実際には確認できていない情報を生成してしまう可能性も考慮すると、途中で人間が変更内容を確認する工程が欠かせません。

前述のWordPressプラグインを介したサプライチェーン攻撃と、AIエージェントによる本番環境の更新には、変更内容が確認されないまま適用されるという共通点があります。こうしたリスクを軽減するため、Kinstaではすべてのサイトに標準でステージング環境が1つ付属します。

MyKinstaでステージング環境に切り替え
MyKinstaでステージング環境に切り替え

本番環境に近いスペックで検証したい場合、複数の環境が必要な場合は、プレミアムステージング環境アドオンも利用可能です。

ステージング環境を活用すれば、本番環境への反映を明示的に実行するまで、AIエージェントによる変更が本番環境に適用されることはありません。

MyKinstaで本番環境をステージング環境に反映
MyKinstaで本番環境をステージング環境に反映

ステージング環境から本番環境への反映時には、データベースのみ、ファイルのみ、またはその両方を選択できます。また、MyKinstaでは反映先の環境のバックアップが事前に自動作成されます。Kinsta自動アップデートアドオンにも、同様の仕組みが採用されています。

AIエージェントのワークフローにステージング環境を組み込むには、まず本番環境をステージング環境にコピーしてから、AIエージェントにタスクを実行させます。その後、実行結果を確認し、問題がなければ選択的プッシュ機能を使って、承認した変更を本番環境に反映します。

AIエージェントにWordPressへのアクセスを許可する前に最小権限の原則を適用

AIエージェントのアクセス権限も、人間のユーザーと同じ原則に基づいて管理する必要があります。最小権限の原則(PoLP: Principle of Least Privilege)は、セキュリティの基本的な考え方の一つです。

Kinstaのマルチユーザー機能は、人間のユーザーだけでなく、AIエージェントにも適用できます。

  • 企業の管理者:MyKinstaアカウント全体を管理できる。AIエージェントには通常この権限は不要。

  • 企業の開発者:すべてのサイトとDNSを管理できる。

  • サイトの管理者:特定のサイトに対するすべての操作をAIエージェントに許可できる。

  • サイトの開発者:アクセスがステージング環境に限定されるため、AIエージェントを活用したワークフローに最適。

AIエージェントに役割を割り当てる際には、APIキーの権限も考慮する必要があります。Kinsta APIキーには、キーを生成したユーザーの役割に応じたアクセス権限が引き継がれます。この仕組みを利用すれば、AIエージェントがアクセスできる範囲を自動的に制限できます。

安全性の高いワークフローを構築するには、AIエージェントごと、またはワークフローごとに個別のAPIキーを生成することをおすすめします。APIキーは、MyKinstaの「企業の設定」>「APIキー」から生成できます。

MyKinstaで新規APIキーの有効期限を設定
MyKinstaで新規APIキーの有効期限を設定

APIキーに有効期限を設定しておけば、アクセス権限を定期的に見直す機会を設けることができます。ワークフローに変更があった場合も、それに合わせてアクセス範囲や権限が適切かどうかを再評価可能です。

AIエージェントのワークフローでバックアップが重要な理由

人間とAIエージェントでは問題が発生する原因が異なるため、バックアップに求められる対策も変わってきます。たとえば、人間であれば、データの削除などの破壊的な操作を行う前に、一度立ち止まって確認するのが自然です。しかし、AIエージェントは指示に従ってタスクを遂行しようとするため、自発的に処理を中断して再確認するとは限りません。そのため、事前確認を必須の手順として組み込む必要があります。

また、バックアップが安全策として機能するのは、AIエージェントによる削除などの操作の影響を受けない場所に保存されている場合に限られます。たとえば、PocketOSで発生した事件は、アクセス権限だけでなく、バックアップの保存方法を含むシステム設計にも問題があったことを示しています。ボリューム単位のバックアップを同じボリューム内に保存するという問題は、コードの修正によって解決できます。

Kinstaでは、データベースの復元に利用できるバックアップが古いものしか残っていないという事態を防ぐため、複数のバックアップ機能を提供しています。

  • 毎日の自動バックアップ:AIエージェントの操作にかかわらず、定期的にバックアップを作成

  • システム生成バックアップ:選択的プッシュや更新の実行前に、AIエージェントが操作を開始した場合でも自動的にバックアップを作成

  • 手動バックアップ:必要に応じて、任意のタイミングで復元ポイントを作成でき、識別用のタグを付けることも可能

さらに、Kinsta APIを利用すれば、AIエージェントが破壊的な操作を実行する前に、必要なチェックを行う仕組みをワークフローに組み込むことができます。

const KINSTA_API_URL = 'https://api.kinsta.com/v2';
const headers = {
  'Content-Type': 'application/json',
  Authorization: `Bearer ${process.env.KINSTA_API_KEY}`
};

const createBackup = async (envId, tag) => {
const resp = await fetch(`${KINSTA_API_URL}/sites/environments/${envId}/manual-backups`, {
method: 'POST',
headers,
body: JSON.stringify({ tag })
});
return resp.json();
};

const pollOperation = async (operationId, intervalMs = 5000, maxAttempts = 12) => {
for (let i = 0; i < maxAttempts; i  ) {
const resp = await fetch(`${KINSTA_API_URL}/operations/${operationId}`, { method: 'GET', headers });
const data = await resp.json();
if (data.status === 200) return data;
if (data.status >= 400) throw new Error(`Operation failed: ${data.message}`);
await new Promise(r => setTimeout(r, intervalMs));
}
throw new Error('Operation timed out');
};

const findBackupByTag = async (envId, tag) => {
const resp = await fetch(`${KINSTA_API_URL}/sites/environments/${envId}/backups`, { method: 'GET', headers });
const data = await resp.json();
return data.environment.backups.find(b => b.note === tag) || null;
};

const runAgentTask = async (envId, agentTask) => {
const tag = `pre-agent-action-${Date.now()}`;
const backup = await createBackup(envId, tag);
if (!backup.operation_id) throw new Error(`Backup request failed: ${JSON.stringify(backup)}`);

await pollOperation(backup.operation_id);
const verified = await findBackupByTag(envId, tag);
if (!verified) throw new Error('Backup not found after completion');

return agentTask();
};

上記では、POSTリクエストを送信して、対象の環境の手動バックアップを作成します。その後、AIエージェントがオペレーションIDを使って処理状況を定期的に確認し、バックアップの作成が完了したことを確認します。完了を確認できたら、破壊的な操作に進むことができます。本番環境に変更を加える際にバックアップの作成を必須の手順として組み込むことは、ほかのセキュリティ設定と同様に欠かせない対策です。

MyKinstaでAIエージェントのアクセス範囲を確認する方法

MyKinstaに表示される情報を活用すれば、AIエージェントがアクセスできる範囲を監査できます。Kinsta APIを使ったプログラムによる監査は、ワークフローに組み込んでおけば、ほぼ瞬時に実行できます。MyKinstaでは、人間が主導して10分程度でアクセス権限を確認できます。

ステージング環境をデフォルトの作業環境に設定していることを確認

まずは、重要な設定項目を人間が直接確認することが大切です。確認すべき点は以下の2つです。

  • 本番環境の環境IDが使用されている箇所

  • Kinsta自動アップデートがワークフロー内の適切なタイミングで実行されること

MyKinstaで本番環境とステージング環境のIDを確認するには、対象サイトの「情報」画面を開き、URLを確認します。

https://my.kinsta.com/sites/details/{site_id}/{environment_id}?idCompany={company_id}

環境のドロップダウンメニューを使って、確認したい環境を切り替えます。次に、自動化処理に使用している設定ファイルやスクリプトを開き、環境IDを検索します。本番環境のIDが見つかった場合は、ステージング環境のIDに置き換えます。

自動更新の設定を確認するには、「プラグインとテーマ」画面に移動し、「自動更新」セクションの「変更」をクリックします。

Kinsta自動アップデートは、自動ロールバックやビジュアルリグレッションテストにより、安全に更新作業を自動化できる
Kinsta自動アップデートは、自動ロールバックやビジュアルリグレッションテストにより、安全に更新作業を自動化できる

Kinsta自動アップデートアドオンでは、ビジュアルリグレッションテスト(更新前後の画面比較)を実行し、問題が検出された場合にはロールバックできます。サイトの各ページについて更新前後のスクリーンショットを比較し、見た目に差異が検出された場合は、正常に動作していた更新前の状態に自動的に戻します。また、ビジュアルリグレッションテストの検出基準を調整できるほか、動的コンテンツにも対応しています。

APIキーへのアクセス権限を確認

APIキーの監査も、手軽に実施できる確認作業の一つです。組織の規模や運用しているプロジェクトによっては、有効期限が切れたAPIキーや、不要になったAPIキーが多数残っている可能性があります。

確認するには、MyKinstaの「企業の設定」>「APIキー」に移動します。管理画面の一覧では、各APIキーに付与されているアクセス権限を確認できません。そのため、APIキーの命名規則を統一し、関連情報を記録しておくことが重要です。

確認すべき項目は、以下の3つです。

  • APIキーを生成したユーザーの役割

  • APIキーの有効期限(一覧から確認可能)

  • 現在稼働しているワークフローで使用されているかどうか

まだ有効期限内であっても、使用していないAPIキーは「アクセス取り消し」をクリックして簡単に無効化できます(有効期限が切れたAPIキーには「削除」ボタンが表示される)。

また、MyKinstaの「ユーザーの活動」画面では、特定のAPIキーを使って実行された操作履歴を絞り込んで確認できます。

「ユーザーの活動」画面では、APIキーへのアクセスに基づいてユーザーごとにフィルタリング可能
「ユーザーの活動」画面では、APIキーへのアクセスに基づいてユーザーごとにフィルタリング可能

自動で確認する場合は、企業のアクティビティログとAPIキーの一覧を取得するエンドポイントを利用してください。

注意点として、APIキーのアクセス権限を確認するには、そのキーを使用した操作が少なくとも1回実行されている必要があります。一度も使用されていないAPIキーであれば、安全に削除可能です。

AIエージェントのワークフローで復元ポイントが確保されていることを確認

バックアップを確認するには、対象のサイトを開き、「バックアップ」画面の「手動」タブに移動します。

手動バックアップのメモ欄はワークフローのタグ付けに便利
手動バックアップのメモ欄はワークフローのタグ付けに便利

ここでは、バックアップのメモに記載漏れや誤りがないか確認します。次に、AIエージェントのワークフローに、APIを使って手動バックアップを作成する処理が含まれているかを確認しましょう。含まれている場合は、AIエージェントがバックアップを実行する前に、オペレーションのステータスを確認するようにします。

また、AIエージェントが想定以上の頻度でバックアップを作成している可能性もあります。手動バックアップの保存枠(最大5件)がすべて埋まっている場合は、それぞれの作成日時を確認しましょう。これにより、不要なバックアップが繰り返し作成されていないかを判断し、必要に応じて処理を最適化できます。

アクティビティログで不審な操作を確認

「ユーザーの活動」画面に戻り、すべての操作について、実行元のユーザーまたはAPIキーを特定できることを確認します。アクティビティログは、企業単位またはサイト単位で確認できます。

詳細を確認したい操作がある場合は、該当するログを選択して、「サポートに尋ねる」をクリックしてください。サポートに直接メッセージを送信し、その操作の内容について詳しい説明を求めることができます。

特定のアクティビティをクリックして、その件についてサポートに直接問い合わせ可能
特定のアクティビティをクリックして、その件についてサポートに直接問い合わせ可能

また、ユーザーアクティビティの詳細を自動取得する方法もあり、ワークフローにチェック機能を組み込む際に活用できます。こうした自動的なチェックに加えて、人間が直接確認することで、AIエージェントが見落とした問題を発見できる場合もあります。

安全策でAIエージェントの自律的な操作を安全に

MyKinstaの機能は、AIエージェントのセキュリティ対策だけを目的としたものではありません。しかし、ステージング環境、ユーザーアクティビティログ、自動バックアップ、アクセス権限の管理を組み合わせることで、AIエージェントによる操作が深刻な問題につながるリスクを軽減できます。また、MyKinstaの管理画面やKinsta APIを通じて、ワークフローの各段階で必要な制御を行うことも可能です。

AIエージェントを安全に活用するには、適切なアクセス範囲と権限を設定し、ワークフローに安全策を組み込むことが重要です。どれほど自動化が進んでも、依然として人間による確認や介入は欠かせません。

KinstaのWordPress専用マネージドクラウドサーバーには、AIエージェントに安全なアクセスを許可するための機能が揃っています。Web制作会社向けプランでも、すべてのクライアントサイトで同じ高水準のセキュリティとサポートをご利用いただけます。ご興味がありましたら、ぜひ一度お試しください。30日間の返金保証、初月無料プラン、そして無料のサイト移行サービスで、リスクなしでご利用いただけます。

Jeremy Holcombe Kinsta

Kinstaのコンテンツ&マーケティングエディター、WordPress開発者、コンテンツライター。WordPress以外の趣味は、ビーチでのんびりすること、ゴルフ、映画。高身長が特徴。