ソリューション

最先端のシークレット管理ソリューション

昨今、DX化が加速したことにより、我々が意識しない様々な場所で機密情報(シークレット)が使われる様になりました。
クラウドシフトの流れから、インターネット経由でパブリッククラウドを利用するケースが増え、従来の境界防御では防げない様々なリスクが多く存在しており 、それを回避するためにはこれまで以上にシークレット管理が重要になります。

シークレットとは

ここでいうシークレットとは様々なシステムで利用される以下の様な機密情報です。

特権アカウントの認証情報(人→機械、機械⇔機械)

パスワード

TLS/SSL証明書

SSHキー、APIキー

暗号鍵

シークレットは、ツール、アプリケーション、コンテナ、DevOps、クラウドネイティブ環境で保護されたリソースや機密情報をロック解除するために必要不可欠な個人情報を指します。Webページからの情報送信、API へのリクエストの実行、クラウドデータベースへのアクセス等、シークレットはオンプレやクラウドに関係なく、様々なアプリケーション間でやり取りされるデータアクセスを制御しています。

パブリッククラウドへアクセスする時にもIDやアクセスキーと呼ばれるキーが使われます。シークレットが漏えいした場合、悪意あるハッカーなどはそれを利用してより高度な特権を持つシステムにアクセスすることができてしまい、組織は甚大な損害を負う可能性があります。

シークレット管理を適切に実装する必要性の高まり

構成ファイルなどにシークレットを含めるのが一般的に利用されている

マシン間接続には、多数のシークレットが利用されている

シークレット管理が各部署やシステムごとの運用ポリシーで管理

リサーチ会社も注目している技術であり、各社が製品、サービスをリリースしている

シークレットは、日本国内における多くのシステムでも構成ファイルやソースコード等に含まれており、今でもセキュリティリスクがある状態で管理されています。

ハードコーディング

  • シークレット(パスワードやAPIキーなど)をソースコードに書き込む方法
  • ソースコードが誤って公開されたり、悪意のある攻撃者によって盗まれる可能性がある

テキストファイルに保存

  • シークレット情報を平文でテキストファイルに保存
  • ファイルのアクセス制御が不十分の場合、意図しない担当者によってアクセスできる

ソースコードに保存

  • シークレットをバージョン管理システム(例:Git)に保存すると、ソースコードの履歴とともにシークレットも更改する可能性がある

脆弱なアルゴリズムを利用した暗号化

  • シークレットを暗号化して保存することは安全。しかし脆弱な暗号アルゴリズムや鍵管理が不適切な場合、漏えいする可能性がある

シークレット管理ルールの欠如

  • チーム内でシークレットを共有する仕組みがない場合、各個人がシークレットを保存し、セキュリティリスクとなる
  • シークレットへのアクセス制御が不十分の場合、意図しないメンバーにシークレットが漏洩してしまうリスク

組織の部署ごとやシステム毎のルールで管理していても、適切に管理できていない組織が多いのが現状です。

最近では、シークレット管理に関して各社が製品・サービスをリリースしており、その重要性・必要性は今後高まってくるとリサーチ会社も提唱しています。

どうやってシークレット管理すべきか?

~PAMソリューション?クラウド事業者提供ツール?~

専用のシークレット管理ソリューションを利用することが推奨されています。ほとんどのクラウドプロバイダーにはシークレット管理のサービスを提供しており、例えば、AWSの場合はAWS Secret Manager 、Google はSecret Manager、Azureの場合KeyVaultが推奨されています。しかし、多くの組織ではマルチクラウド環境でシステム運用をしているため、複数のクラウドプロバイダーにまたがる機密管理ソリューションが求められています。

それを解決する製品がThales社のCipherTrust Managerです。

Akeyless社のシークレット管理テクノロジーを使用し、CipherTrust Managerで管理されている鍵(AES256bit)でマルチクラウド環境におけるシークレットを暗号化し、保護することができます。

Thales CipherTrust Manager-東京エレクトロンデバイス

CipherTrust Managerのシークレット管理で提供する機能

アクセス制御の強化

  • シークレットへのアクセス権を必要最小限に制限
  • アクセス権の管理にはロールベースのアクセス制御(RBAC)を活用

暗号化

  • シークレットを暗号化した状態で保管し、システム管理者の不正なアクセスから保護

監査とログの設定

  • シークレットのアクセスや変更を監視し、ログを保存

自動ローテーション

  • シークレットの定期的なローテーション(更新)を自動化
  • 古いシークレットが悪用されるリスクを軽減

一時的なシークレットの発行

  • 急なメンテナンス作業にともなう有効期限追記のシークレットを発行

物理的なアクセス制御

  • シークレットが保存されている物理的な場所へのアクセスを制限

サポートしている認証方式

  • Cloud identities (CSP IAM) such as AWS IAM, Azure AD, and GCP.
  • On-prem machines using Akeyless Universal Identity ™.
  • Kubernetes Auth.
  • Certificate based Authentication.
  • API Keys
  • LDAP
  • SAML
  • OIDC
  • 0/JWT
  • Email
  • API KeysThales CipherTrust Manager2-東京エレクトロンデバイス

サポートしているシークレットタイプ

静的シークレット

  • 手動で作成および更新
  • キーおよび値は長期間にわたって同じ(パスワード、APIトークンなど)

動的シークレット

  • 限られた期間、権限セットでリソースへのアクセスを提供するために生成された一時的なシークレット

ローテーションされたシークレット

  • 対象マシン上のパスワードをリセットすることで定期的に特権ユーザアカウントのパスワードを更新

証明書

  • 内部環境の認証局としてPKI/TLS証明書とSSH証明書の両方のタイプをサポート

利用イメージ

Thales CipherTrust Manager3ー東京エレクトロンデバイス

ピンチアウトで拡大

CipherTrustManagerではAkeylessと連携するためのゲートウェイが実装されており、Customer Fragment Storage(顧客フラグメント領域)を使用して、Akeylessで取り扱われるシークレットを暗号化します。CipherTrustManagerはHSMを搭載しているモデルもあり、シークレットを暗号化する暗号鍵をRoot of TrustとしてHSMで保護することもできます。

Akeylessプラットフォームからは、CipherTrust Managerで管理された暗号鍵を取り出すことはできず、もちろん平文のシークレットにアクセスすることもできません。ユーザーは、AkeylessクライアントやSDK を介して Akeyless Gateway に接続し、Akeyless Vault Platform に保存されているシークレットを安全に管理することができます。

関連する情報