セキュアな Hive Metastore アクセスのために Apache Ranger 認証を有効にする方法

HadoopBeginner
オンラインで実践に進む

はじめに

このチュートリアルでは、Hadoop Hive Metastore への安全なアクセスのために Apache Ranger 認証を有効にする手順を案内します。この記事の最後まで読むと、Ranger を構成し、誰が Hive Metastore とそれが管理するデータにアクセスできるかを制御するポリシーを実装する方法が理解できるようになります。

Apache Ranger の概要

Apache Ranger は、ビッグデータプラットフォームに対する包括的なセキュリティ管理ソリューションを提供するオープンソースのフレームワークです。Hive、HDFS、HBase などの様々な Hadoop エコシステムコンポーネントにわたって、集中型のセキュリティ管理、細粒度のアクセス制御、および包括的な監査機能を提供します。

Apache Ranger とは?

Apache Ranger は、ビッグデータ技術を採用した組織が直面するセキュリティ上の課題に対応するために設計されています。複数の Hadoop コンポーネントにわたるセキュリティポリシーを定義、管理、および監視するための集中型プラットフォームを提供し、一貫した効果的なアクセス制御と監査を保証します。

Apache Ranger の主要な機能

  1. 集中型ポリシー管理:Ranger は管理者が単一のウェブベースのコンソールからセキュリティポリシーを定義および管理できるようにし、Hadoop エコシステム全体でのアクセス制御の適用プロセスを簡素化します。
  2. 細粒度のアクセス制御:Ranger は粒度の細かいアクセス制御をサポートし、管理者がユーザー、グループ、リソース、アクセスタイプ(読み取り、書き込み、実行)などの様々な属性に基づいてポリシーを定義できるようにします。
  3. 包括的な監査:Ranger は、すべてのアクセス試行を追跡およびログ記録する堅牢な監査システムを提供し、管理者がセキュリティとコンプライアンスの目的でユーザーアクティビティを監視および分析できるようにします。
  4. シームレスな統合:Ranger は、Hive、HDFS、HBase、Kafka などの様々な Hadoop コンポーネントと統合され、ビッグデータスタック全体に対する統一されたセキュリティ管理ソリューションを提供します。
  5. 柔軟なポリシーモデル:Ranger のポリシーモデルは柔軟で拡張可能なように設計されており、組織が特定の要件に合わせてセキュリティポリシーをカスタマイズおよび適応させることができます。

Apache Ranger の典型的なユースケース

  1. 安全なデータアクセス:Ranger は、Hive、HDFS、HBase などの Hadoop コンポーネントに格納されている機密データには、承認されたユーザーとアプリケーションのみがアクセスできることを保証します。
  2. 規制コンプライアンス:Ranger の包括的な監査機能は、詳細なアクセスログとレポートを提供することで、GDPR、HIPAA、PCI-DSS などの規制要件を満たすのに役立ちます。
  3. マルチテナントセキュリティ:Ranger は、Hadoop 環境で安全なマルチテナントを可能にし、異なるチームや部署が厳格なアクセス制御を維持しながら独自のデータとリソースにアクセスおよび管理できるようにします。
  4. データガバナンス:Ranger の集中型ポリシー管理と細粒度のアクセス制御機能は、組織がデータガバナンスポリシーを適用し、データのプライバシーとセキュリティを保証するのに役立ちます。

次のセクションでは、Hive Metastore へのアクセスをセキュアにするために Apache Ranger を構成する方法を探ります。

Hive Metastore アクセス用に Ranger を構成する

Apache Ranger を使用して Hive Metastore をセキュアにするには、Ranger を Hive Metastore サービスと統合するように構成する必要があります。以下は手順ごとのガイドです。

前提条件

  1. Hadoop クラスターに Apache Ranger をインストールして構成します。
  2. Hive Metastore サービスが実行中でアクセス可能であることを確認します。

Hive Metastore アクセス用に Ranger を構成する手順

  1. Hive Metastore 用の Ranger プラグインを有効にする

    • Hive Metastore の設定ファイル(通常は hive-site.xml)を見つけ、以下のプロパティを追加します。
      <property>
        <name>hive.security.authorization.manager</name>
        <value>org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory</value>
      </property>
      <property>
        <name>hive.security.authenticator.manager</name>
        <value>org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator</value>
      </property>
      
    • 変更を有効にするために、Hive Metastore サービスを再起動します。
  2. Hive Metastore 用の Ranger ポリシーを構成する

    • Ranger Admin UI にログインします。
    • 「Hive」サービスに移動し、Hive Metastore へのアクセスを制御する新しいポリシーを作成します。
    • 組織のセキュリティ要件に基づいてポリシーを定義します。例えば:
      • アクセス権を持つユーザーまたはグループを指定します。
      • 適切な権限(例:読み取り、書き込み、作成、削除)を選択します。
      • ポリシーを適用する関連する Hive リソース(データベース、テーブル、列)を選択します。
  3. Ranger ポリシーの適用を検証する

    • 異なるユーザーアカウントを使用して Hive Metastore にアクセスし、Ranger ポリシーが正しく適用されていることを確認します。
    • Ranger の監査ログを確認し、すべてのアクセス試行がログに記録され監視されていることを確認します。
graph LR
  A[Hive Client] --> B[Hive Metastore]
  B --> C[Ranger Plugin]
  C --> D[Ranger Admin]
  D --> E[Ranger Policies]

これらの手順に従うことで、Apache Ranger を有効にして Hive Metastore をセキュアにし、Hive Metastore に格納されているメタデータには承認されたユーザーとアプリケーションのみがアクセスできるようにすることができます。

Ranger ポリシーで Hive Metastore をセキュアにする

Ranger を Hive Metastore と統合するように構成した後、次のステップは、Hive Metastore へのアクセスをセキュアにするために Ranger ポリシーを定義して適用することです。

Hive Metastore の Ranger ポリシーを理解する

Hive Metastore の Ranger ポリシーを使用すると、データベース、テーブル、列などの様々な Hive リソースへのアクセスを制御できます。次の基準に基づいてポリシーを定義できます。

  • ユーザー/グループ:Hive リソースにアクセスできるユーザーまたはグループを指定します。
  • 権限:付与または拒否するアクセスの種類(読み取り、書き込み、作成、削除)を定義します。
  • リソース:ポリシーを適用する特定の Hive データベース、テーブル、または列を選択します。

Hive Metastore の Ranger ポリシーを作成する

  1. Ranger Admin UI にログインする

    • Ranger Admin コンソールにアクセスします。通常は http://<ranger-admin-host>:6080 で利用できます。
  2. Hive サービスに移動する

    • Ranger Admin UI で「Hive」サービスを見つけ、クリックして Hive 関連のポリシーを管理します。
  3. 新しい Hive ポリシーを作成する

    • 「Add New Policy」ボタンをクリックして、新しい Hive ポリシーを作成します。
    • ポリシーに意味のある名前を付けます。例えば、「Restrict access to sensitive Hive tables」などです。
  4. ポリシーの詳細を構成する

    • リソース:ポリシーを適用する Hive データベース、テーブル、または列を選択します。ワイルドカード(例:db_name.*)を使用して、複数のリソースにポリシーを適用できます。
    • ユーザー/グループ:選択した Hive リソースにアクセスできるユーザーまたはグループを指定します。
    • 権限:選択したユーザー/グループに付与または拒否する適切な権限(読み取り、書き込み、作成、削除)を選択します。
  5. ポリシーを確認して保存する

    • ポリシーの詳細を確認し、セキュリティ要件に合致していることを確認します。
    • 「Add」をクリックしてポリシーを保存します。
graph LR
  A[Ranger Admin UI] --> B[Hive Service]
  B --> C[Create New Policy]
  C --> D[Policy Configuration]
  D --> E[Resources]
  D --> F[Users/Groups]
  D --> G[Permissions]
  E --> H[Databases, Tables, Columns]
  F --> I[Authorized Users/Groups]
  G --> J[Read, Write, Create, Drop]

Hive Metastore の Ranger ポリシーを作成して適用することで、Hive Metastore に格納されているメタデータには承認されたユーザーとアプリケーションのみがアクセスおよび操作できるようにし、Hadoop エコシステム全体のセキュリティを強化することができます。

まとめ

この Hadoop に焦点を当てたチュートリアルでは、Hive Metastore をセキュアにし、データへのアクセスを制御するために Apache Ranger をセットアップする方法を学びました。Ranger ポリシーを構成することで、Hive Metastore とやり取りできるのは承認されたユーザーとアプリケーションのみになり、Hadoop エコシステム全体のセキュリティが強化されます。