問題タブ [apache-ranger]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - HBase (Hortonworks) アクセス拒否例外
Hortonworks 環境でのストレージの選択として HBase を使用しています。1 つのノードが実行されており、すべてが正常に機能する場合は、複数のノードにアップグレードする予定です。現在、Knox SSO を使用してサービスにサインインしています。
HBase 内のデータにアクセスするには、WebHBase API を使用します。Knox SSO を介したサインインは正常に機能します。これを行うために使用するユーザー (「testuser」) には、Ranger で構成された Hbase に対する完全なアクセス権があります。
しかし、Knox を経由して Hbase に到達すると、問題が発生します。いいえ、ユーザー「root」という例外が発生します。「testuser」でデータを取得したいのに、ユーザー「root」を要求するのはなぜですか? 明らかに、ユーザーを「root」にして完全な許可を与えることができますが、これは非常に望ましくありません。サービスに関して、Ranger/Knox 内のユーザー認証に何らかの誤りがあるに違いないと考えています。
以下は、Knox ゲートウェイを介して webhbase API にアクセスしたときに得られるスタックトレースです。
禁止された org.apache.hadoop.hbase.security.AccessDeniedException: org.apache.hadoop.hbase.security.AccessDeniedException: ユーザー 'root' の権限が不十分です。アクション: scannerOpen、tableName:testtable、family:r。org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.authorizeAccess (RangerAuthorizationCoprocessor.java:511) で org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.preScannerOpen (RangerAuthorizationCoprocessor.java:901) で org.apache.ranger.authorization .hbase.RangerAuthorizationCoprocessor.preScannerOpen(RangerAuthorizationCoprocessor.java:856) org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$50.call(RegionCoprocessorHost.java:1267) at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$RegionOperation. call(RegionCoprocessorHost.java:
745) 原因: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.security.AccessDeniedException): org.apache.hadoop.hbase.security.AccessDeniedException: ユーザー「root」の権限が不十分です。アクション: scannerOpen、tableName:rowphyste、family:r。org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.authorizeAccess (RangerAuthorizationCoprocessor.java:511) で org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor.preScannerOpen (RangerAuthorizationCoprocessor.java:901) で org.apache.ranger.authorization .hbase.RangerAuthorizationCoprocessor.preScannerOpen(RangerAuthorizationCoprocessor.java:856) org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost$50.call(RegionCoprocessorHost.java:1267) at org.apache.hadoop.hbase.regionserver.
現在、Knox トポロジでのユーザー マッピング (プリンシパル マッピング) は行っていません。私の gateway-audit.log は次のようになります。
17/05/05 11:58:33 ||aac40856-3c3f-46a5-8b90-970d54bc0a21|audit|WEBHBASE||||アクセス|uri|/gateway/default/hbase/testdatabase/ |利用不可|リクエスト方法: GET 17 /05/05 11:58:33 ||aac40856-3c3f-46a5-8b90-970d54bc0a21|監査|WEBHBASE||||アクセス|uri|/gateway/default/hbase/testdatabase/|成功|応答ステータス: 302 17/05/05 11:58:33 ||5737b75b-9082-44e5-9afd-9675e9c36c43|監査|KNOXSSO||||アクセス|uri|/gateway/knoxsso/api/v1/websso ?originalUrl=mydomain/gateway/default/hbase/testdatabase/%2A|利用不可|リクエスト方法: GET 17/05/05 11:58:33 ||5737b75b-9082-44e5-9afd-9675e9c36c43|監査|KNOXSSO|testuser| ||認証|uri|/gateway/knoxsso/api/v1/websso?originalUrl=mydomain/gateway/default/hbase/testdatabase/%2A|成功| 17/05/05 11:58:33 ||5737b75b-9082-44e5-9afd-9675e9c36c43|監査|KNOXSSO|testuser|||認証|uri|/gateway/knoxsso/api/v1/websso?originalUrl=mydomain/gateway /default/hbase/testdatabase/%2A|成功|グループ: [] 17/05/05 11:58:|利用不可|リクエスト方法: GET 17/05/05 11:58:33 ||53594522-40b6-4040-ad2e-07e71a8ae112|audit|WEBHBASE||||dispatch|uri|mydomain:60080/testdatabase/ ?user.name =testuser|利用不可|リクエスト方法: GET 17/05/05 11:58:33 ||53594522-40b6-4040-ad2e-07e71a8ae112|audit|WEBHBASE||||dispatch|uri|mydomain:60080/testdatabase/ ?user .name=testuser|success|応答ステータス: 403 17/05/05 11:58:33 ||53594522-40b6-4040-ad2e-07e71a8ae112|audit|WEBHBASE||||アクセス|uri|/gateway/default/hbase /testdatabase/ |成功|応答ステータス: 403