こんにちは、microCMSでプロダクトマネージャーをしている清水です。
このたび、Hobbyプランで作成できるAPIキーの上限を、1個から2個に増やしました。
読み取り用と書き込み用でキーを分けたり、既存のキーを使いながら新しいキーへ切り替えたりと、APIキーをより安全に運用しやすくするための変更です。
この記事では、今回の変更の背景と、あわせて見直していただきたいセキュリティ対策について紹介します。
変更の背景
セキュリティリスクの高まりを踏まえ、利用者の皆さまが安全に運用するための仕組みを見直しています。
APIキーは、アプリケーションからmicroCMSのデータにアクセスするための認証情報です。付与した権限によっては、コンテンツの取得だけでなく、作成・更新・削除もできます。そのため、キーの保管方法と、どの操作を許可するかの両方が重要になります。
これまでHobbyプランでは、APIキーを1個のみ作成できました。読み取りと書き込みを同じキーで扱う必要があり、用途ごとに権限を分けたり、既存のキーを残したまま新しいキーに切り替えたりすることが難しい状態でした。
今回、上限を2個に増やすことで、Hobbyプランでもこうした運用を取り入れやすくしています。
安全に運用するために見直したいこと
今回の変更にあわせて、APIキーとアカウントの運用について、次の3点の見直しをお願いできればと思います。
APIキーは秘匿し、読み取りと書き込みを分ける
APIキーは、原則として外部に露出させない構成で利用してください。サーバー側からAPIを呼び出し、キーはサーバー側の環境変数やシークレット管理機能などで保管することを基本としてください。
そのうえで、読み取り用と書き込み用のAPIキーを分け、それぞれに必要な権限だけを設定することをおすすめします。
例えば、次のような使い分けです。
- Webサイトでコンテンツを取得するキーには、必要なAPIのGET権限のみを付与する
- サーバー側の処理やmicroCMS MCPでコンテンツを作成・更新するキーには、対象のAPIと操作に必要な権限だけを付与する
特に、書き込み権限を持つAPIキーは必ず秘匿してください。ブラウザに配信するJavaScriptや公開リポジトリなどに含めると、第三者によるコンテンツの改ざんや削除につながるおそれがあります。
読み取り専用のキーについても、取得できるデータの範囲を確認し、不要な権限を付与しないことが大切です。
権限設定の詳細は、APIキー(APIの認証と権限管理)をご確認ください。
APIキーを定期的にローテーションする
APIキーは、定期的に新しいキーへ切り替える「ローテーション」も推奨されます。
現在キーを1個使用している場合は、今回の変更によって、既存のキーを残したまま新しいキーを作成できます。
切り替えは、次の順序で進められます。
1. 必要な権限を設定した新しいAPIキーを作成する
2. アプリケーションや連携先の設定を新しいキーに変更する
3. 正常に動作することを確認し、古いキーを削除する
古いキーを使っている処理が残っていないか、確認してから削除してください。
アカウントには2要素認証を設定する
microCMSを利用する際は、管理画面にログインするアカウントと、アプリケーションからアクセスするAPIキーの、それぞれを保護する必要があります。
管理画面にログインするアカウントには、2要素認証を設定してください。パスワードに加えて認証アプリのコードを求めることで、パスワードが漏えいした場合の不正ログインのリスクを下げられます。
microCMSでは、すべてのプランで2要素認証を設定できます。なお、サービス内のメンバーに対して2要素認証を必須化する機能は、Enterpriseプランでご提供しています。
設定方法は、2要素認証の設定をご覧ください。
アカウントに2要素認証を設定しても、APIキーを使ったアクセスが保護されるわけではありません。アカウントには2要素認証、APIキーには秘匿・必要最小限の権限設定・定期的なローテーションと、それぞれに対策をお願いします。
おわりに
microCMSでは、ご利用のプランを問わず、安全に運用していただくことを大切にしています。
今回の変更では、HobbyプランでもAPIキーの権限分離やローテーションを取り入れやすくしました。
この機会に、ご利用のプランにかかわらず、APIキーの保管方法や権限設定、アカウントの2要素認証を見直していただければと思います。