KinstaではSSHおよびSFTPアクセスWordPress環境に安全に接続することができます。

お客様の柔軟な開発作業を維持しながら、セキュリティを強化するため、これまでIP許可リスト複数の認証方法、およびきめ細かなアクセス制御を導入してきました。

MyKinstaの「メインSFTP/SSHユーザー」セクション
MyKinstaの「メインSFTP/SSHユーザー」セクション

この度、同様の機能をKinsta APIにも拡張し、既存のSFTPユーザー管理エンドポイントを拡充することで、SSHおよびSFTPアクセスの自動制御が可能になりました。

以下、新たに導入されたエンドポイントを使って、環境全体でSSHおよびSFTPアクセスを自動化する方法をご紹介します。

SSH/SFTPアクセスを有効または無効にする

/ssh/set-statusエンドポイントを使用すると、任意の環境のSSH/SFTPアクセスを自動で有効または無効にすることができます。

これはデプロイメントワークフローでセキュリティを自動で強化するのに便利です。例えば、変更をプッシュしている間は一時的にアクセスを有効にし、デプロイの完了後は無効にすることができます。

エンドポイント

POST /sites/environments/{env_id}/ssh/set-status

リクエスト例

curl -i -X POST \
  'https://api.kinsta.com/v2/sites/environments/{env_id}/ssh/set-status' \
  -H 'Authorization: Bearer ' \
  -H 'Content-Type: application/json' \
  -d '{ "is_enabled": true }'

リクエストとレスポンスの詳細はこちらをご覧ください。

認証方法の管理

またSSH鍵やユーザー名およびパスワードなど、ユーザーの認証方法も管理できるようになります。

これにより、環境に接続する必要があるさまざまな種類のユーザーや貢献者や外部ツールを管理する際、より高い柔軟性が得られます。

例えば、社内ではSSH鍵ベースの認証を使用するが、一時的な共同作業者や自動化サービスにはパスワード認証が必要という場合、この新たなAPIエンドポイントを使用すると、パスワード認証を自動的に有効または無効にし、不要になったら削除することができます。

エンドポイント

POST /sites/environments/{env_id}/ssh/set-password-status

リクエストの例

curl -i -X POST \  'https://api.kinsta.com/v2/sites/environments/{env_id}/ssh/set-password-status' \
  -H 'Authorization: Bearer ' \
  -H 'Content-Type: application/json' \
  -d '{ "is_enabled": true }'

詳細はこちらをご覧ください。

SFTPパスワードの生成とローテーション

特に複数の開発者や自動化サービスが環境にアクセスする場合、安全なワークフローを確立するには、堅牢なパスワード管理が欠かせません。

今回、SFTPパスワードを自動で生成および取得できるため、簡単に認証情報のローテーションを自動化したり、デプロイメントや外部ユーザー向けに短期アクセスを発行したりすることができます。

エンドポイント

POST /sites/environments/{env_id}/ssh/generate-password
GET /sites/environments/{env_id}/ssh/password

リクエスト例(パスワードの生成)

curl -i -X POST \
  'https://api.kinsta.com/v2/sites/environments/{env_id}/ssh/generate-password' \
  -H 'Authorization: Bearer '

このパスワードの生成パスワードの取得の詳細はこちらをご覧ください。

IP許可リストの管理

SSH/SFTPアクセス用のIP許可リストも管理可能です。これにより、環境へのアクセスを承認したネットワークのみに簡単に制限し、社内で強力なセキュリティポリシーを実施できるようになります。

例えば、CI/CD RunnerやオフィスのIPが頻繁に変更される場合、許可リストを動的に自動更新し、それらのシステムだけが環境に接続できるようにすることができます。

エンドポイント

POST /sites/environments/{env_id}/ssh/set-allowed-ips
GET /sites/environments/{env_id}/ssh/get-allowed-ips

リクエスト例 (許可リストの取得)

curl -i -X GET \
  'https://api.kinsta.com/v2/sites/environments/{env_id}/ssh/get-allowed-ips' \
  -H 'Authorization: Bearer '

応答例

{
  "environment": {
    "active_container": {
      "stfp_ip_allowlist": ["127.0.0.1"]
    }
  }
}

IP 許可リストの取得と更新例の詳細はこちらをご覧ください。

認証情報の有効期限間隔の定義

チームが有効期限の短い認証情報を適用し、長期的な情報漏洩リスクを低減できるよう、SSH/SFTP認証情報の有効期限をAPI経由で直接設定することもできます。

これにより、社内のセキュリティポリシーに応じて、一定期間後にアクセスを自動で失効させることが可能です。

エンドポイント

POST /sites/environments/{env_id}/ssh/change-expiration-interval

リクエスト例

curl -i -X POST \
  'https://api.kinsta.com/v2/sites/environments/{env_id}/ssh/change-expiration-interval' \
  -H 'Authorization: Bearer ' \
  -H 'Content-Type: application/json' \
  -d '{ "interval": "24h" }'

この詳細はこちらをご覧ください。

接続の詳細情報を取得する

複数の環境を管理したり、デプロイを自動化したりする場合、MyKinstaにログインせずにSSH/SFTP接続の詳細情報を取得できると便利です。

/ssh/configエンドポイントでは、ホスト、ポート、ユーザー名、SSHコマンドなど、接続に必要なすべての情報を自動取得できます。

エンドポイント

GET /sites/{site_id}/environments/{env_id}/ssh/config

レスポンスの例

{
  "port": "22",
  "host": "example.sftp.kinsta.cloud",
  "user": "kinsta_user",
  "ssh_command": "ssh [email protected] -p 22"
}

この詳細はこちらをご覧ください。

Kinstaでワークフローを安全に自動化

環境全体でSSHとSFTPアクセスの自動化に、今回新たに導入された上記エンドポイントをご活用ください。

Kinsta APIは、開発者のオンボーディングから認証情報のローテーション、ネットワークポリシーの実施まで、既存のDevOpsワークフローに安全な接続管理を統合する柔軟性をもたらします。

すべてのエンドポイントの詳細とリクエスト例は、Kinsta APIリファレンスをご覧ください。