1. ヘルプ
  2. セキュリティ

APIキーを隠す必要はありますか?

原則的には隠すことを推奨いたします。

ただし、システムの構成によっては、クライアントサイドからAPIへアクセスするケースも考えられます。

その場合、ユーザーがAPIキーを判別することが可能ですが、APIキーに設定した権限と、管理するコンテンツの内容によっては、必ずしも問題にはなりません。

APIの権限について

microCMSでは、APIキーに権限を設定することができます。

権限の分類としては、以下の4つがあります。

  • コンテンツの読取が可能→GET
  • コンテンツの作成が可能→POST / PUT
  • コンテンツの更新が可能→PATCH
  • コンテンツの削除が可能→DELETE

このうち、GET以外の権限をAPIキーを付与している場合、APIキーが判別されると、任意のリクエストを送付することで、コンテンツの操作が可能となってしまいます。

またGETに関しても、下書き全取得の権限を付与している場合は、下書き状態のコンテンツについても取得することが可能となります。

管理するコンテンツ内容について

GET権限が付与されている場合、コンテンツが公開中のものについては、全て取得することが可能となってしまいます。

仮にフロントエンドでは最新10件のみ表示する設定にしていても、リクエスト内容を調整することで、全件取得可能となります。

またAPIキーは、個別権限を設定していない限り、全てのAPIに対して有効となりますので、実際には利用していないAPIのコンテンツも取得可能となります。

以上を踏まえまして、

  • GET以外の権限・下書き全取得がついていない
  • 管理するコンテンツが全て公開されても問題ない情報

といった2点を満たしている場合は、必ずしもAPIキーを隠す必要はありません。

APIキーを隠すためには、サーバーサイドからmicroCMSのAPIにアクセスする必要があります。以下の記事に実装例がございますので、ご参照ください。

▼ Serverless Functions + microCMSで全文検索APIを作成する
https://blog.microcms.io/serverless-functions-search/