セキュリティの概要
Apache Doris は、認証、認可、データ保護、通信の暗号化、監査による追跡など、エンタープライズ向けデータプラットフォームに必要なセキュリティ機能を提供します。この文書では、セキュリティに関する利用場面から始め、Doris のセキュリティアーキテクチャ、基本概念、認証・認可の仕組みを紹介します。各機能の詳細へのリンクも示し、管理者がセキュリティ対策を計画できるようにします。
適用シナリオ
| シナリオ | 注目する機能 | 参照先 |
|---|---|---|
| ユーザーの一元管理(企業の LDAP/AD との連携) | LDAP 認証 | LDAP による認証 |
| 内部ユーザーとパスワードポリシーの管理 | 組み込み認証、パスワードポリシー、ホワイトリスト | 組み込み認証 |
| 複数チームで共有するクラスタ、ロールに基づく認可 | RBAC、ロール | 組み込み認可 |
| ビッグデータエコシステムと連携した認可の一元管理 | Apache Ranger との連携 | Ranger による認可 |
| 機密データの保護(行・列レベルの制御、マスキング) | データアクセス制御 | データアクセス制御 |
| クライアントから FE への接続の暗号化 | MySQL プロトコルの SSL、FE の HTTPS | MySQL プロトコルの SSL、FE の HTTPS 設定 |
| 監査とコンプライアンスのための追跡 | 監査ログ | 監査ログ |
| データの暗号化と復号 | 暗号化関数 | データ暗号化関数 |
| AWS へのデプロイと IAM との連携 | AWS の認証と認可 | AWS の認証と認可 |
セキュリティ機能の概要
Doris は、ID、認可、データ、通信、監査という五つの側面から、以下の仕組みでデータのセキュリティを管理します。
| セキュリティの側面 | 機能 | 説明 |
|---|---|---|
| 認証 | 組み込み認証 | Doris はユーザー名とパスワードによる認証を提供し、パスワードポリシーをカスタマイズできます。 |
| 認証 | LDAP 認証 | LDAP サービスを通じてユーザーの認証情報を一元管理し、アクセス制御を簡素化してシステムのセキュリティを高めます。 |
| 認可 | ロールベースのアクセス制御(RBAC) | ユーザーのロールと権限に基づき、データベースリソースへのアクセスや操作を制限します。 |
| 認可 | Ranger による認可 | Apache Ranger と連携し、きめ細かなアクセス制御ポリシーによる認可の一元管理を実現します。 |
| データ保護 | データの暗号化とマスキング | テーブル内のデータを暗号化・マスキングし、不正なアクセスによる機密データの漏えいを防ぎます。 |
| データ保護 | きめ細かなアクセス制御 | ルールに基づき、行・列レベルのアクセス権限を設定します。 |
| 通信のセキュリティ | SSL 暗号化プロトコル | クライアントと Doris サーバー間の通信を保護し、データの盗聴や改ざんを防ぎます。 |
| 監査による追跡 | 監査ログ | ユーザーのログイン、クエリ、データの変更など、すべての操作を記録し、事後監査や問題の追跡に役立てます。 |
| 拡張機能のセキュリティ | Java UDF のセキュリティ | root 管理者は、ユーザーが作成した UDF の実装を確認し、運用上の安全性を確保するとともに、データの削除やシステムの破損などにつながる危険な操作を防ぐ必要があります。 |
| 拡張機能のセキュリティ | サードパーティ製パッケージの管理 | JDBC Catalog や UDF などの機能を通じてサードパーティ製パッケージを導入する場合、管理者は提供元が安全で信頼できることを確認する必要があります。公式の提供元または信頼できるコミュニティの依存パッケージのみを使用してください。 |
基本概念
Doris の認可システムは、MySQL の権限管理の仕組みをモデルにしています。行レベルのきめ細かなアクセス制御、ロールベースのアクセス制御、ホワイトリストの仕組みをサポートします。以下の四つの基本概念を理解すると、Doris の認証・認可モデルを把握しやすくなります。
ユーザー ID
権限システムでは、ユーザーはユーザー ID(User Identity)によって識別されます。ユーザー ID は username と host の二つの要素で構成されます。
username:英字の大文字と小文字で構成されるユーザー名です。host:ユーザーの接続元 IP アドレスです。
ユーザー ID は username@'host' と表記し、username が host から接続することを意味します。
ユーザー ID には username@['domain'] という表記もあります。domain は、DNS によって一組の IP アドレスに解決できるドメイン名です。最終的には username@'host' の集合として表されます。以下では username@'host' という表記に統一します。
権限
権限はノード、データカタログ、データベース、またはテーブルに適用されます。権限の種類によって、許可される操作が異なります。
ロール
Doris では、任意の名前を付けたロールを作成できます。ロールは権限の集合と考えることができます。新規ユーザーにロールを割り当てると、そのロールの権限を自動的に取得します。その後ロールの権限を変更すると、そのロールに属するすべてのユーザーの権限にも反映されます。
ユーザープロパティ
ユーザープロパティはユーザー ID ではなく、ユーザーに直接紐付きます。つまり、user@'192.%' と user@['domain'] は同じユーザープロパティを共有します。そのプロパティはユーザー user に属し、user@'192.%' や user@['domain'] には属しません。
ユーザープロパティには、ユーザーの最大接続数やロードクラスタの設定などが含まれます。
認証と認可の仕組み
Apache Doris へのログインは、認証と認可の二段階に分かれます。
- 認証:ユーザーが提供した資格情報(ユーザー名、クライアント IP、パスワードなど)に基づいて本人確認を行います。確認できたユーザーを、システム内のユーザー ID に対応付けます。
- 認可:取得したユーザー ID とそれに対応する権限に基づき、要求された操作を実行する権限があるか確認します。
認証方式として、Doris は組み込み認証とLDAP 認証をサポートします。認可方式として、RBAC に基づく組み込み認可とApache Ranger に基づく外部認可をサポートします。認証方式と認可方式は自由に組み合わせることができます。たとえば、認証に LDAP を、認可に Ranger を使用できます。
次の表に、一般的な組み合わせと適用シナリオを示します。
| 認証方式 | 認可方式 | 適用シナリオ |
|---|---|---|
| 組み込み認証 | 組み込み RBAC | 外部システムへの依存がない、小規模から中規模の単独デプロイのクラスタ。 |
| LDAP 認証 | 組み込み RBAC | 企業の LDAP/AD と連携し、認可モデルは引き続き Doris で管理する場合。 |
| 組み込み認証 | Apache Ranger | 既存の Ranger システムを使用し、ビッグデータエコシステムと連携して認可を一元管理する場合。 |
| LDAP 認証 | Apache Ranger | ID の統一、認可の一元管理、監査対応が求められるエンタープライズ環境での推奨構成。 |
関連ドキュメント
Doris のセキュリティ機能の詳細については、トピック別に以下の文書を参照してください。
| トピック | ドキュメント |
|---|---|
| 組み込み認証(パスワードポリシー、ホワイトリスト、パスワードを忘れた場合の対処) | 組み込み認証 |
| LDAP 認証 | LDAP による認証 |
| 組み込み RBAC 認可(権限の種類、権限階層、ロール) | 組み込み認可 |
| 行・列レベルの権限とデータマスキング | データアクセス制御 |
| Apache Ranger による認可の一元管理 | Ranger による認可 |
| 監査ログ | 監査ログ |
| MySQL プロトコルの SSL による通信の暗号化 | MySQL プロトコルの SSL |
| FE の HTTP/HTTPS 通信の暗号化 | FE の HTTPS 設定 |
| 暗号化関数 | データ暗号化関数 |
| クラウドベンダー(AWS)との連携 | AWS の認証と認可 |