Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Sawa_Ito
Product and Topic Expert
Product and Topic Expert
0 Kudos

このブログは、2022 年 11 月 15 日に SAP ジャパン公式ブログに掲載されたものを SAP ジャパン公式ブログ閉鎖に伴い転載したものです。




このブログは、jason.hinsperger が執筆したブログ「Setting Up Initial Access to HANA Cloud data lake Files(2021 年 8 月 5 日)の抄訳です。最新の情報は、SAP Community の最新ブログマニュアルを参照してください。




 

SAP HANA Cloud, data lake は、フォーマットのあらゆるタイプのデータのネイティブ形式でのストレージをサポートしています。

マネージドファイルストレージは、外部のハイパースケーラーアカウントでストレージを設定することなく、あらゆるタイプのファイルをセキュアに格納するストレージを提供します。

これは、高速 SQL 分析を行う目的で SAP HANA Cloud, data lake にデータを高速投入する必要がある場合や、何等かの目的でデータを extract する場合にとても便利です。

SAP HANA Cloud, data lake Files への初回のアクセス設定は、特にデータベースのバックグラウンドを持ち、オブジェクトストレージや REST API に詳しくない場合には少し難しいプロセスかもしれません。

以下は、私が SAP HANA Cloud, data lake files をテストするのに使用したプロセスです。

SAP HANA Cloud, data lake files はユーザーセキュリティーやアクセスを認証経由で管理するため、ユーザーアクセスの設定には署名付きの証明書の生成が必要です。

認証局へのアクセスがない場合には、OpenSSL を利用する以下のプロセスを使用してCAと署名付きのクライアント証明書を作成してSAP HANA Cloud, data lake files 設定を更新することができます。
私はこれまで何度もこれでテストしたことがあるので読者の方でも同様に行えるでしょう。

最初に、CA バンドルを作成してアップロードする必要があります。

 

以下の OpenSSL コマンドを使用して CA を生成できます。

openssl genrsa -out ca.key 2048

 

次に、CA の公開証明書(この場合は 200 日間有効)を作成します。共通名を最低限入力し、他のフィールドを必要に応じて入力します。

openssl req -x509 -new -key ca.key -days 200 -out ca.crt

 

クライアント証明書の署名リクエストを作成する必要があります。共通名を最低限提供し、他のフィールドを必要に応じて入力します。

openssl req -new -nodes -newkey rsa:2048 -out client.csr -keyout client.key

 

最後に、クライアント証明書を作成します(この場合は 100 日有効)。

openssl x509 -days 100 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt

*備考 – CA とクライアント証明書のフィールドがすべて全く同じにならないようにしてください。さもないと、自己署名証明書とみなされ、以下の証明書の認証が失敗します。


 

証明書が任意の CA によって署名されたことを認証するには(SAP HANA Cloud, data lake に CA 証明書をアップロードしたときにクライアント証明書を認証するために使用できるとわかるように)

openssl verify -CAfile ca.crt client.crt

 

次に、SAP HANA Cloud Central でインスタンスを開き、「Manage File Container」を選択し、SAP HANA Cloud, data lake files ユーザーを設定します。

 



 

設定を編集し、「Trusts」セクションの「Add」を選択します。前に生成した ca.crt をコピーまたはアップロードし、「Apply」をクリックします。すぐには「Manage File Container」スクリーンはクローズしないでください。

 



 

これで、管理されたファイルストレージにアクセスできるようにユーザーを構成できるようになりました。

 

「Authorizations」セクションをスクロールダウンして、「Add」を選択します。新しい入力欄が表示されます。

 



 

ユーザーのロールをドロップダウンリストから選択します(デフォルトでは admin とユーザーロールがあります)。

ここからが少し難しいところです。

リクエストしたときに、ストレージゲートウェイ(SAP HANA Cloud, data lake files へのエントリーポイント)がどのユーザーに対して認証するのか決定できるようクライアント証明書からパターン文字列を追加する必要があります。

パターン文字列を生成するにあたり、2 つのオプションがあります。
以下の OpenSSL コマンドを使用して、パターン文字列を生成することができます(アウトプットに表示される 「subject= 」 プレフィックスは省略します) 。

 

openssl x509 -in client.crt -in client.crt -nameopt RFC2253 -subject -noout

 

あるいは、スクリーンにある「generate pattern」オプションを使用することもできます。
これは、ダイアログボックスを開き、クライアント証明書をアップロード/貼り付けて、自動でパターンを生成します。
証明書は保存せず、パターン文字列だけを保存することに注意してください。

 



 

「Apply」をクリックして、権限入力欄にパターン文字列を追加します。

パターン文字列は、ワイルドカードも使用可能なため、特定のロールの証明書のクラスを認証できることに注意してください。証明書のパターンが複数の認証と一致する場合、使用する認証は、特定の認証エントリーに設定された「Rank」値セットによって制御されます。


 

これで、REST api 経由で SAP HANA Cloud, data lake files にアクセスして使用することができます。

私のテストではうまくいったcurl コマンドのサンプルがあります。接続が成功しているかどうかvalicate できます。(インスタンス ID とファイル REST API エンドポイントは HANA Cloud Centralのインスタンス詳細からコピーすることができます)。

上記で生成して認証の作成に使用したクライアント証明書とキーを使用してください。

 

curl は少し tricky なことに注意してください。Windows で試していましたが、Windows 10 バージョン用の curl を動作させることができませんでした。最終的に新しい curl version (7.75.0) をダウンロードしたところ、機能しましたが、Windows で curl から証明書ストアへどうアクセスするのかわからなかったため、SAP HANA Cloud サーバー証明書の認証をスキップするために –insecure’ オプションを使用しなければなりませんでした。

 


curl --insecure -H "x-sap-filecontainer: <instance_id>" --cert ./client.crt --key ./client.key "https://<Files REST API endpoint>/webhdfs/v1/?op=LISTSTATUS" -X GET

 

上記のコマンドは、以下を返します (空のSAP HANA Cloud, data lake)。

 

{"FileStatuses":{"FileStatus":[]}}

 

これで、SAP HANA Cloud, data lake files を使用して、あらゆるタイプのファイルを SAP HANA Cloud に格納するための設定は終了です。

ファイルの管理でサポートされている REST API と引数のフルセットについては、マニュアルを参照ください。

 




オリジナルのブログはここまでです。