Cloudera Data Platform のセキュリティ・リファレンス・アーキテクチャ概要

Cloudera Data Platform のセキュリティ・リファレンス・アーキテクチャ概要

セキュリティエンジニアリングのベストプラクティスの4つの柱:境界、データ、アクセス、可視性

by Niel Dunnage
この記事は、2022/1/21に公開された「Security Reference Architecture Summary for Cloudera Data Platform」の翻訳です。情報は、英語版が公開された当時のものになります。

ブログでは、CDP Private Cloud Base のクラスタのセキュリティアーキテクチャの要約をご紹介します。このアーキテクチャは、セキュリティエンジニアリングのベストプラクティスである「境界」「データ」「アクセス」「可視性」の4つの柱を反映しています。CDP Private Cloud Base のリリースでは、セキュリティアーキテクチャに以下のような大幅な機能強化が行われました。

  • Apache Rangerのセキュリティポリシー管理機能
  • Rangerキー管理サービス(KMS)更新

テクノロジーについて語る前に、多層防御を容易にする多層アプローチという重要なセキュリティ原則に精通しておく価値があります。各層以下のように定義されています。

このような複数のセキュリティ層は、データの機密性、完全性、可用性を保証し、最も強固な規制要件を満たすために適用されます。CDP Private Cloud Base は、これらの機能を実装した3つのセキュリティレベルを提供します。

レベル セキュリティレベル 特徴
0 Non-secure (非セキュア) セキュリティ設定されていない。非セキュアなクラスタは、あらゆる攻撃や悪用に対して脆弱であるため、本番環境では決して使用すべきではない。
1 Minimal (最小限) 認証、認可、監査のための設定。認証はまず、ユーザーとサービスが身元を証明した後にのみクラスタにアクセスできるように設定される。次に、ユーザーとユーザーグループに権限を割り当てるために、認可メカニズムが適用される。監査手順は、誰がどのようにクラスタにアクセスしたかを追跡する。
2 More (さらに) 機密データは暗号化される。鍵管理システムは暗号鍵を扱う。メタストア内のデータに対する監査が設定された。システムのメタデータは定期的に見直され、更新される。理想的には、あらゆるデータオブジェクトのリネージをたどることができるようにクラスタを設定する (データガバナンス)。
3 Most (最大限) セキュアなクラスタとは、すべてのデータ (保存データと転送中のデータの両方) が暗号化され、鍵管理システムがフォールトトレラントであるクラスタのことである。監査の仕組みは、業界、政府、および規制の基準 (PCI、HIPAA、NISTなど) に準拠し、クラスタから、それと統合する他のシステムまで拡張される。クラスタ管理者は十分な訓練を受けており、セキュリティ手順は専門家によって認定されており、クラスタは技術的レビューに合格できる

この文書では、最も安全なレベル3のセキュリティに焦点を当てます。

セキュリティアーキテクチャの改善

レベル3実装の規制基準に準拠するために、お客様は、特権を持つ管理者のみがアプリケーションを使用してコア CDP サービスにアクセスできるようにするネットワークトポロジを作成します。アナリストと開発者は、Hue などの適切なゲートウェイサービスと、適切な管理および監視 Web インターフェイスに限定されます。Apache Knox の追加により、安全なアクセスに対するプロビジョニングが大幅に簡素化され、ユーザーは堅牢なシングルサインオン(SSO)の恩恵を受けることができます。Apache Ranger は、タグベースのアクセス制御、堅牢な監査、および既存の企業ディレクトリをまとめることにより、セキュリティポリシー管理を統合します。

論理アーキテクチャ

以下の図に示すように、クラスタアーキテクチャはいくつかのゾーンに分割することができます。

境界の外側にはソースデータとアプリケーションがあり、ゲートウェイゾーンは管理者とアプリケーションが作業を行うコア・クラスタゾーンとやりとりする場所です。これらはデータ層でサポートされ、そこで設定と重要な資料が管理されます。各ゾーンのサービスは、Kerberos とトランスポート・レイヤー・セキュリティ (TLS) の組み合わせを使用して、それぞれのホストロール間の接続と API コールを認証。これにより、認証ポリシーが実施され、監査イベントがキャプチャされます。Cloudera Manager は、ローカル KDC に対して直接、または企業ディレクトリ内の仲介者を介して認証情報を生成します。同様に、Cloudera Manager Auto TLS では、ホストごとに証明書を生成し、確立された認証局によって署名することができます。必要であれば、実装を簡素化するために、証明書に署名する権限を Cloudera Manager に委譲することができますのセクションでは、それぞれの側面がどのように実装されるかについて、より詳細に説明します。

認証

通常、クラスタは既存の企業ディレクトリと統合され、認証情報の管理を簡素化し、ユーザーとサービスの両方のアカウントを管理維持するための確立された人事手順と整合します。Kerberos は、企業ディレクトリ (IDM/AD) で生成され、Cloudera Manager によって配布される認証情報を使用して、クラスタ内のすべてのサービスアカウントを認証するために使用されます。これらの手順を確実に保護するためには、CM、Corporate Directory、およびクラスタホスト間のすべてのやり取りを TLS セキュリティを使用して暗号化することが重要です。署名された証明書は各クラスタホストに配布され、サービスロールの相互認証が可能になります。これには、Cloudera Manager サーバーと TLS ハンドシェイクを実行する Cloudera Agent プロセスが含まれ、Kerberos 認証情報の生成と配布などの設定変更が暗号化されたチャネルを介して実行されます。CM エージェントに加えて、Impala デーモン、HDFS ワーカーロール、管理ロールなどのすべてのクラスタサービスロールは通常 TLS を使用します。

Kerberos

Kerberos を有効にすると、有効な Kerberos チケットを持っていれば、すべてのクラスタロールがお互いを認証できるようになります。認証チケットは、有効な認証情報の提示により、KDC (通常、ローカルのActive Directory ドメインコントローラ、FreeIPA、または企業の Kerberos インフラストラクチャとの信頼関係を確立した MIT Kerberos サーバ) によって発行されます。Cloudera Manager は、データベース内で安全に維持される昇格特権を使用して、これらの資格情報を生成し、各サービスロールに配布します。通常、管理特権は、企業ディレクトリ内の特定の組織単位 (OU) 内で、Kerberos プリンシパルの作成と削除を可能にします。Kerberos Keytab ファイルが暗号化された接続で転送されるように、Cloudera Manager とエージェント間で TLS セキュリティを有効にすることをお勧めします。

データ転送時の暗号化

転送時の暗号化は、手動または自動 TLS の2つの導入モードがある TLS セキュリティを使用して有効化されます。手動 TLS の場合、顧客は独自のスクリプトを使用して独自の証明書を生成し、クラスタホストにデプロイします。

通常、証明書などのセキュリティアーティファクトは、ローカルのファイルシステム /opt/cloudera/security に保存されます。cloudera-deploy Ansible オートメーションはこの方法を使います。

Auto TLS により、Cloudera Manager は、スタンドアロンまたは既存の企業認証局から委任された認証局として機能することができます。Cloudera Manager は次に、署名された証明書を生成し、関連するトラストストアとともにクラスタ全体に配備することができます。この証明書は、クラスタサービス間のネットワークトラフィックを暗号化するために使用されます。HDFS の透過的暗号化、データ転送、リモートプロシージャコール(RPC)、そして様々なユーザーインターフェイスやAPIとの通信です。

データ保管時の暗号化

機密データを安全に保管するためには、データが暗号化された状態で保管されていることを保証すると同時に、復号化する能力を与えられた適切な権限を持つユーザーやサービスが処理できるようにすることが不可欠です。セキュアな CDP クラスタは、完全透過的な HDFS 暗号化を特徴とし、多くの場合、様々なストレージテナントやユースケース用に個別の暗号化ゾーンを持ちます。HDFS 全体を暗号化するのではなく、要なディレクトリ階層を暗号化することに注意してください。

YARN や Impala のスクラッチディレクトリのような HDFS の他の重要なローカルストレージの場所と同様に、ログファイルもブロック暗号化を使って暗号化することができます。HDFS とローカルファイルシステムの両方は、セキュアな鍵受託サービスに統合することができ、通常、鍵管理の責任を負う別のクラスタに配備されます。これにより、クラスタ管理者と暗号鍵に責任を持つセキュリティ管理者の職務分離が保証されます。さらに、Key Trustee のクライアント側暗号化は、Apache Log4j2CVE-2021-44228 のような脆弱性に対する深層防御を提供します。

論理アーキテクチャ

Ranger KMS サービス概要

Ranger KMS サービスは、従来のRanger KMS サービスと Key Trustee KMS を単一のサービスに統合したもので、Ranger KMS DB または Key Trustee サービスをサービスのバッキングキーストアとしてサポートすることができます。どちらの実装も、加の複雑さとハードウェアのコストはかかりますが、完全な業務分離と幅広い HSM を提供する KTS のバッキングサポートと HMS の統合をサポートしています追。オペレーションを簡素化し、大規模に実行するためには、RKMS+KTS をサポートすることが望ましいです。Ranger 

KMS がサポートすること:

  • 鍵管理は、Web UI または REST API を使用して鍵を作成、更新、削除する機能を提供
  • アクセスコントロールは、Ranger KMS 内でアクセス・コントロール・ポリシーを管理する機能を提供。アクセスポリシーは、鍵の生成や管理の許可を制御し、HDFS で暗号化されたデータのセキュリティのレイヤーをもう一つ追加する
  • AuditRanger は、Ranger KMS によって実行されたすべてのアクションの完全な監査トレースを提供
  • すべてのポリシーは Ranger サービスによって管理される

セキュリティサービス

Cloudera のセキュリティとガバナンス サービスは、Cloudera Manager でデプロイおよび管理できるクラスタの SDX レイヤーの一部を形成します。これらについては、以下のセクションで詳しく説明します。

Apache Ranger

Apache Ranger は、プラットフォーム全体で包括的なデータセキュリティを実現、監視、管理するためのフレームワークです。CDP スタック内のすべてのサービスのデータやその他の関連オブジェクトにアクセスするためのポリシーの作成と管理に使用され、以前のバージョンよりも多くの改良が加えられています。

  • CDP 以前は、Ranger はポリシーのユーザーとグループしかサポートしていなかった。CDP では、以前Apache Sentryにのみ存在した「ロール」機能がRangerにも追加されました。ロールは、与えられたオブジェクトにアクセスするためのルールの集まりである。Ranger では、これらのロールを特定のグループに割り当てることができる。Ranger ポリシーは、ロールに設定したり、グループや個々のユーザーに直接設定したりすることができ、すべての CDP サービスにわたって一貫して適用され
  • HDP のユーザーは、Apache Sentry で利用可能だった HDFS ファイルシステムと Hive のテーブルレベルの権限設定を同期する新しいApache Ranger RMS 機能の恩恵を受けることができる 

より広範にApache Rangerは以下を提供します: 

  • 集中管理インターフェイスと API
  • すべてのコンポーネントで標準化された認証方法
  • 役割ベースのアクセス制御や属性ベースのアクセス制御など、複数の認可方法をサポート
  • 管理および監査アクションの集中監査

Apache Ranger は多くのコンポーネントを備えています:

  • 管理ポータルの UI と API
  • Rangerプラグインは、中央管理サービスからポリシーを取り込み、ローカルに保存するように設計された、各コンポーネント用の軽量 Java プラグインである
  • 各ユーザ要求は、要求をキャプチャし、別の監査イベントを介してRanger監査サーバに送信するポリシーに対して評価される
  • ユーザーグループ同期:UNIX と LDAP からユーザーとグループメンバーシップを同期し、ポリシー定義のためにポータルに保存する

顧客は通常、ユーザーのグループメンバーシップを OS で解決するために、SSSD または同様の技術を導入。その後、Ranger Audit サーバーは、クラスタの Solr インフラストラクチャサービスを使用してこれらのイベントにインデックスを作成し、分析とレポーティングを容易にします。

注:Hive の特権シンクロナイザーには注意してください。これは Hive 内で実行され、すべての Hive オブジェクトに対して5分ごとに定期的に権限をチェックするため、Hive の必須メモリが大きくなり、何千もの Hiveオブジェクトがある場合、Hive メタストアのパフォーマンスが低下します。この機能は、Beelineを使用している顧客や、SQL ベースのステートメントを使用して権限操作を行っている場合にのみ必要となります。ベストプラクティスとしては、、hive.privilege.synchronizer.interval=3600 (デフォルトは720) を使用して同期の頻度を減らすことで、1時間ごとにチェックするかまたは完全に無効にして Ranger UI でポリシーを管理するのことが挙げられます。 

セキュリティゾーン

セキュリティゾーンを使用すると、Rangerリソースとタグベースのポリシーを特定のグループに整理して、管理を委譲できるようになります。

例えば、特定のセキュリティゾーンにて、

  • セキュリティゾーン「finance」には、「finance」Hiveデータベース内のすべてのコンテンツが含まれ
  • ユーザーとグループは、セキュリティゾーンの管理者として指定することができる
  • ユーザーは、自分が管理者であるセキュリティゾーンでのみポリシーを設定することができ
  • セキュリティゾーンで定義されたポリシーは、そのゾーンのリソースにのみ適用され
  • ゾーンを拡張して、HDFS、Hive、HBase、Kafka など複数のサービスのリソースを含めることができるため、ゾーンの管理者は、複数のサービスにわたって組織が所有するリソースのポリシーを設定できる

Apache Atlas

Atlas はスケーラブルで拡張可能なコアガバナンスサービスであり、企業が CDP のコンプライアンス要件を効果的かつ効率的に満たすことを可能にし、エンタープライズデータエコシステム全体との統合を可能にします。

組織は、データ資産のカタログを構築し、これらの資産を分類して管理し、データサイエンティスト、アナリスト、データガバナンスチームに対して、これらのデータ資産をめぐるコラボレーション機能を提供することができる。論理的には、Apache Atlas は以下のようにレイアウトされている

Apache Knox

Apache Knox は、すべてのリモートアクセスイベントのプロキシとして動作することで、CDP Web UI および API のシングルサインオン(SSO)を提供し、クラスタインターフェイスへのアクセスを簡素化します。これらの API の多くは、モニタリングやリアルタイムでの設定変更の発行に役に立ちます

ステートレスリバースプロキシフレームワークとして、Knox は CDP の REST API へのリクエストをルーティングする複数のインスタンスとしてデプロイできます。負荷の増加に応じてノックスノードを追加することで、リニアにスケールします。ロードバランサーは複数のノックスインスタンスにリクエストをルーティングできます。

Knox はまた、REST/HTTP コールをインターセプトし、一連の拡張可能なインターセプターパイプラインを通じて、認証、認可、監査、URL 書き換え、Web 脆弱性除去などのセキュリティサービスを提供します。

Knox によって保護されている各 CDP クラスタは、単一のクラスタ固有のアプリケーションコンテキストパスによって表される REST API のセットを持ちます。これにより、Knox Gateway は複数のクラスタを保護し、REST API コンシューマに複数のクラスタにまたがる必要なサービスすべてにアクセスするための単一のエンドポイントを提供することができます。

CDP では、特定のプロバイダ (sso、pam、admin、manager) とトポロジ (cdp-proxy、cdp-proxy-api) はすでに設定済みで、ほとんどが Cloudera Manager の設定 UI に統合されています。さらに CDP は、ユーザーにとって便利な設定済みのWebページを同梱しています。

クラスタ定義はトポロジ展開記述子内で定義され、ユーザー向け URL とクラスタ内部間のルーティングと変換を目的として、クラスタのレイアウトを Knox Gateway に提供します。

トポロジー展開記述子を Knox インストールのトポロジーディレクトリに書き込むだけで、新しい CDP クラスタ定義が処理され、ポリシー実施プロバイダが設定され、アプリケーションコンテキストパスが API コンシューマによって使用可能になります。CDP Private Cloud Base には、様々なクラスタサービスのトポロジーがあらかじめ設定されており、顧客が環境に合わせて拡張することができます。

まとめ

CDP Private Cloud Base クラスタの主要なセキュリティ機能を以下のリストに要約しました。別の記事では、すべての主要機能の実装例を参照しながら、より詳細に説明します。 

  • 企業ディレクトリとの統合
  • Hive テーブルを作成し、固定
  • Rangerポリシー評価の流れを説明
  • ロールを使用して、グループまたはユーザーに対して特定の Hive オブジェクトを有効にし、保護する方法の例を示す
  • Hive テーブルとその基礎となる HDFS ディレクトリに適用できるタグベースのポリシーについて説明
  • RangerAuditグループとロールをマッピングする手順を説明

Cloudera Data Platform Security の詳細については、https://docs.cloudera.com/cdp-private-cloud-base/7.1.7/cdp-security-overview/topics/security-data-lake-security.html をご覧ください。

 

Cloudera Japan Marketing
この著者の他の記事

コメントする

あなたのメールアドレスは公開されません。また、コメントにリンクを貼ることはできません。