認証¶
Presto は、システム管理者が Presto の異なる HTTP エンドポイントへのアクセスを制御できるように、HTTP エンドポイントの認証サポートを有効にするように構成できます。
ロールベースアクセス制御¶
Presto のすべての HTTP エンドポイントは、ロールのセットによって保護されており、それらのロールのいずれかに属する ID のみがアクセスできます。 Presto には 3 つのロールが定義されています。
user
: クエリの起動、ステータスの確認、出力データの取得、UI 用のデータの提供など、外部エンドポイントにアクセスする必要があるユーザー。internal
: ワーカーでタスクを起動したり、別のワーカーから交換データをフェッチしたりするなど、エンドポイントにアクセスする Presto の内部コンポーネント (コーディネーターやワーカーなど)。admin
: ノードのステータスを取得するなどの内部サービスエンドポイントにアクセスできるシステム管理者。
認証の有効化¶
認証を有効にするには、次の手順を実行する必要があります。
認証を有効にする¶
Presto 認証では、アクセサーのプリンシパルを取得するために認証が必要なので、認証が有効になっていることを確認してください。
TLS/SSL が適切に構成されている場合、証明書を使用してアクセサーを識別するだけで済みます。
http-server.authentication.type=CERTIFICATE
KERBEROS
、PASSWORD
、JWT
などの他の認証タイプを指定することもできます。追加の設定が必要になる場合があります。node.internal-address=<authentication type>
オーソライザーを設定する¶
認証を有効にするには、インターフェース com.facebook.airlift.http.server.Authorizer
を実装してバインドする必要があります。これは、受信リクエストのプリンシパルと、リクエストされているエンドポイントの許可されたロールに基づいて、実際の認証チェックを実行します。
プリセットの ConfigurationBasedAuthorizer
を使用するか、独自に実装することができます。
設定ベースのオーソライザー¶
このプラグインを使用すると、ロールから ID を照合するための正規表現へのマッピングを指定することで、認証サポートを有効にすることができます。設定ベースのオーソライザーの使用を開始するには、次の手順に従います。
ロールと ID の正規表現のマッピングを作成し、ファイルに保存します。
user=.* internal=coordinator admin=su.*
config.properties
ファイルにマッピングファイルへのパスを指定します。configuration-based-authorizer.role-regex-map.file-path=<path to mapping file>
Guice モジュール
com.facebook.airlift.http.server.ConfigurationBasedAuthorizerModule
をインストールします。
認証設定の構成¶
認証設定は config.properties
ファイルで構成されます。ワーカーノードとコーディネーターノードの認証は、同じプロパティセットを使用して構成されます。
config.properties
ファイルに追加する必要があるプロパティの例を以下に示します。
http-server.authorization.enabled=true
http-server.authorization.default-policy=ALLOW
http-server.authorization.default-allowed-roles=USER,ADMIN
http-server.authorization.allow-unsecured-requests=false
プロパティ |
説明 |
---|---|
|
Presto の認証を有効にします。 |
|
デフォルトの認証ポリシーは、許可されたロールが指定されていないエンドポイントに適用されます。 |
|
default-policy が |
|
セキュリティで保護されていないリクエストの認証チェックをスキップします。デフォルト値は |
警告
http-server.authorization.allow-unsecured-requests
は、認証付きで HTTP から HTTPS に移行するための方法として提供されており、認証されていないリクエストが認証チェックをスキップできるため、セキュリティホールとなります。移行期間中のみ有効にし、HTTPS の使用に移行したら、この設定を無効にしてください。