シークレットとは?
- IAM 用語集
- シークレットとは?
シークレットとは、APIキー、パスワード、トークン、証明書などの特権的な非人間用認証情報で、システムやアプリケーションが認証や認可のために使用します。シークレットは、アプリケーション、サービス、リソース間で安全な通信を可能にし、適切なアクセス権を付与することで機密データを保護します。シークレットの適切な管理により、システム間の安全なやり取りを確保し、特権データの不正アクセスを防ぐことができます。
シークレット管理とは?
シークレット管理とは、組織のITインフラ内で使用される特権認証情報を安全に取り扱い、保管し、管理するプロセスを指します。これにより、シークレットを一元的に管理・保存・監査し、不正アクセスのリスクを最小限に抑えることができます。シークレット管理の目的は、システム運用を安全に維持し、セキュリティリスクを低減させ、運用効率を高めることです。
シークレットの種類
組織が特権情報を保護するために使用するシークレットには、さまざまな種類があります。代表的なものとして、パスワード、暗号鍵、トークン、APIキー、SSHキー、証明書、特権ユーザーの認証情報などが挙げられます。
パスワード
最も一般的なシークレットの一つであるパスワードは、ユーザーを認証し、システム、データ、またはアプリケーションへのアクセスを許可するために広く使用されています。パスワードは、ユーザーとシステムの両方が知っている大文字・小文字、数字、記号の組み合わせで構成されます。パスワードはユーザーの身元を確認し、機密データを不正アクセスから保護します。強力なパスワードにするためには、十分な長さと複雑さを持たせる必要があります。そうしないと、ブルートフォース攻撃などのパスワードを狙った攻撃に対して脆弱になるリスクがあります。
特権ユーザー認証情報
特権ユーザー認証情報により、システム、ネットワーク、アプリケーションに対して管理者権限や高度なアクセス権を付与します。これらの認証情報は、システム設定の構成、機密情報へのアクセス、特権アカウントの管理など、重要な作業を行うことができるユーザーに属します。重要なデータへのアクセスを可能にするため、特権ユーザー認証情報は、不正な操作を防ぐために厳重に監視し、保護する必要があります。
SSH (Secure Shell) キー
SSHキーは、ネットワーク上で安全かつパスワード不要の認証を可能にする仕組みです。システム管理者が自動化やシングルサインオン (SSO) でよく利用します。SSHキーは、サーバーに保存される公開鍵と、ユーザーが秘密に保持する秘密鍵で構成されます。接続が開始されると、サーバーは公開鍵を確認し、秘密鍵と一致する場合にアクセスを許可します。
API (Application Programming Interface) キー
APIキーは、アプリケーションやユーザーがAPIへアクセスする際に使用される一意の識別子で、認証および認可を行うためのものです。呼び出し元アプリケーションの身元を確認することで、ソフトウェア同士のやり取りを安全に行えるようにします。APIキーは、アクセス制御、ワークフローの自動化、使用量の管理などによく利用されます。機密情報へのアクセスを許可する場合があるため、APIキーは不正使用を防ぐために厳重に管理する必要があります。
暗号鍵
暗号鍵は、データの機密性と完全性を維持するために、暗号化と復号化のプロセスで使用されます。データを転送中および保存中の両方で保護するために不可欠な要素です。主な種類は次の2つです。
- 共通鍵方式: 暗号化と復号化の両方に同じ鍵を使用する方式です。
- 公開鍵暗号方式: 暗号化に使用する「公開鍵」と、復号化に使用する「秘密鍵」の2つの鍵を利用する方式です。
暗号鍵は、現代のITシステムにおける安全な通信、デジタル署名、データ保護の基盤となる重要な要素です。
トークン
トークンは、認証および認可のために使用され、主にウェブアプリケーションやAPIで利用されます。トークンは一時的に発行され、ログインや認可プロセスが成功した後に特定のリソースへのアクセスを許可するために生成されます。トークンには、ユーザーの身元を確認するための情報が暗号化されて含まれており、各リクエストごとにパスワードを送信する必要がありません。機密性の高いリソースへのアクセスを許可する場合があるため、トークンは安全に保存・共有する必要があります。
証明書
デジタル証明書は、インターネット接続やネットワーク上の通信を安全に保つために使用されます。これらはしばしばSSL/TLS証明書と呼ばれます。Transport Layer Security (TLS) は、現在の標準であり、旧来のSecure Sockets Layer (SSL) プロトコルのより安全で最新のバージョンです。TLS証明書はウェブサイトの身元を認証し、サーバーとクライアント間に暗号化された接続を確立します。証明書には公開鍵やドメイン名、発行者などの情報が含まれており、クライアントがサーバーの信頼性を確認することができます。証明書は、データのプライバシーを保護し、中間者攻撃 (MITM) を防ぎ、ユーザーの信頼を築く上で重要です。
シークレット管理の課題
適切なシークレット管理が行われていない場合、組織内の各チームがシークレットを個別に扱うことになり、シークレットの散乱や安全でない共有が発生する可能性があります。
シークレットの散乱
シークレットの散乱とは、組織内でシークレットが無秩序に分散している状態を指します。組織が成長するにつれて、シークレットはクラウド環境やさまざまなツールに分散し、不正アクセスのリスクが高まります。中央集約型のシークレット管理が行われていない場合、セキュリティ上の脆弱性やコンプライアンス上の課題につながる可能性があります。
ハードコーディングされたシークレット
ハードコーディングされたシークレットとは、パスワードやAPIキーなどの機密情報を、ソースコードや設定ファイルに直接埋め込んでいる状態を指します。これは、開発者が開発やテストを簡単にするためにシークレットをコード内に保存する場合に起こります。しかし、認証情報を直接ソースコードに保存すると、セキュリティリスクが生じ、シークレットの更新や漏洩の抑制が難しくなります。
手動でのシークレット共有
手動でのシークレット共有とは、メールやメッセージングシステムなどの手作業のプロセスを通じて機密情報を送信・配布する行為を指します。メールやメッセージアプリ、スプレッドシートに依存してシークレットを共有すると、人的ミスや不正アクセスのリスクが高まります。暗号化されていないメールでシークレットを共有すると、その機密データは不正な第三者によって傍受される可能性があります。
クラウドコンピューティング権限
クラウドコンピューティング権限は、サーバーやデータベースなど、クラウド上のリソースへのユーザーアクセスを決定します。組織がユーザーに過剰な権限を付与すると、人的ミスやサイバー攻撃によってデータ漏洩のリスクが高まります。多くの組織では、クラウドアプリケーションへのアクセスを追跡するのが難しく、権限の肥大化や管理が行き届かない認証情報が生じることがあります。
サードパーティアカウントおよびリモートアクセス
サードパーティアカウントやリモートアクセスアカウントが適切に管理されていない場合、セキュリティ上の脆弱性を招く可能性があります。特に、ベンダーや契約社員が過剰な権限を持っていたり、認証情報が古い場合はリスクが高まります。権限のないアクセスにより、外部ベンダーやリモート従業員が重要なシステムに接続して機密データにアクセスすることで、データ漏洩やシステムの侵害が発生する可能性があります。
シークレット管理の実践例
組織は、権限や認可ユーザーの管理、シークレットの自動ローテーション、シークレット管理ポリシーの定期的な更新などの方法により、シークレットを安全に管理できます。
権限と認可ユーザーの管理
組織は、ユーザーやシステムが業務を遂行するために必要なアクセス権のみを付与する最小権限の原則 (PoLP) に従って、権限や認可ユーザーを管理する必要があります。<a href=/resources/glossary/what-is-role-based-access-control/"">ロールベースのアクセス制御 (RBAC) は、個々のユーザーではなく役割に基づいて権限を割り当てることでPoLPを実施し、過剰な権限のリスクを最小化します。さらに、多要素認証 (MFA) をすべての特権アカウントに有効化することで、追加のセキュリティ層を提供し、不要または不正なアクセスを防止できます。
シークレットのローテーション
シークレットの自動ローテーションは、組織が機密情報への不正アクセスのリスクを低減するために実施すべき手法です。シークレットを頻繁に更新することで、万が一シークレットが漏洩した場合でも影響を最小限に抑えられます。中央集約型のシークレット管理システムを利用すれば、認証情報をあらかじめ設定したスケジュールに従って自動的に更新でき、時間を節約できるとともに人的ミスの可能性も減らせます。
シークレットと識別子の区別
シークレットやセキュリティを保護するために、組織は、パスワード、暗号鍵、トークンなどのシークレットと、ユーザー名、メールアドレス、デバイスIDなどの識別子を区別する必要があります。シークレットは機密性が高く、機密情報への直接アクセスを許可するため、厳重に管理・監視する必要があります。一方、識別子は誤用を防ぐために慎重に管理すべきですが、公開されても問題ない情報です。組織はシークレットを安全に保管し、厳格なアクセス制御を実施することで、不正使用を防ぎ、漏洩リスクを最小限に抑える必要があります。
シークレット管理ポリシーの定期的な見直しと更新
組織は、進化する高度なサイバー攻撃の脅威に備えるために、シークレット管理ポリシーを定期的に見直し、更新する必要があります。ポリシーの更新には、機密情報へのアクセス権を持つユーザーの確認、不要または古くなったシークレットの取り消し、規制基準の遵守の徹底などが含まれます。中央集約型のシークレット管理システムを利用することで、ポリシーの適用を自動化し、一貫性を維持するとともに人的ミスを最小限に抑えることができます。