- 印刷する
- PDF
アカウントの作成と管理
- 印刷する
- PDF
VPC環境で利用できます。
Data Forestのアカウントとアプリを作成して管理する方法を説明します。
アカウント作成
Data Forestのアカウントを作成する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールにアクセスします。
- Platformメニューの VPCをクリックして VPC環境に変更します。
- Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
- Accounts> [アカウント作成] ボタンをクリックします。
- アカウント名とアカウントのパスワードを入力します。
- アカウント名: アプリの提出時に必要なアカウントの名前を入力。 (2文字以上16文字以内のアルファベットと数字を組み合わせて作成。アカウント名はクラスタ内で固有の値でなければならないため、[重複チェック] ボタンをクリックして重複していないか確認)
- アカウントのパスワード: アカウントでログインする際に使用するパスワードを入力。(8文字以上20文字以内のアルファベットの大文字と小文字、特殊文字、数字をそれぞれ1文字以上入力)
- [作成] ボタンをクリックします。
- アカウントリストでアカウントが作成されたか確認します。
- アカウントの作成が完了するまで2~3分ほどかかります。
- アカウントが正常に作成されると、アカウントのステータスが運用中に変更されます。
- アカウントのステータスが運用中になっているか確認します。
Data Forestではユーザー別に1つのアカウントのみ作成・使用できます。
アカウントの管理
クラスタアクセス情報の確認
クラスタのアプリケーションタイプ別のアクセス情報を確認する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
- 左側の Data Forest > Appsメニューをクリックします。
- 作成したアプリを選択した後、アプリ詳細情報の Quick links > [アクセス情報の詳細を見る] をクリックします。
- クラスタのアプリケーションタイプ別のアクセス情報を確認します。
キータブのダウンロード
当該アカウントでクラスタにアクセスするには、キータブファイルが必要です。キータブファイルをダウンロードする方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールの Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
- アカウントを選択してクラスタのアクセス情報 > Kerberos keytabのダウンロードをクリックします。
- ダウンロード画面が表示された [ダウンロード] ボタンをクリックします。
HDFS Quota の変更
アカウントが使用するクラスタの名前空間に応じて、各 HDFSのファイル数とファイル容量を変更できます。
- NAVERクラウドプラットフォームコンソールの Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
- HDFS Quotaを変更するアカウントを選択し、アカウント設定の変更 > HDFS Quotaの変更をクリックします。
- HDFS Quotaの変更画面が表示されたら、情報を変更して [変更] ボタンをクリックします。
- 名前空間: 名前空間を選択
- 変更するファイル数: 最小100万個から最大500万個まで、100万個単位で選択可能(デフォルト値: 100万個)
- 変更するファイル容量: 最小200TBから最大500TBまで、100TB単位で選択可能(デフォルト値: 200TB)
Kerberos Keytabの初期化
ダウンロードしたキータブを紛失したかキータブの変更が必要な場合、Kerberos Keytabを初期化できます。
Kerberos Keytabを初期化する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールの Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
- キータブを変更するアカウントを選択してアカウント設定の変更 > Kerberos keytabの初期化をクリックします。
- Kerberos Keytabの初期化画面が表示されたら、情報を確認して [初期化] ボタンをクリックします。
Kerberos Keytabを初期化すると、既存キータブを使用するアプリケーション、バッチジョブはすべて失敗しますので、ご注意ください。
アカウントパスワードの初期化
アカウントのパスワードを紛失したかパスワードの変更が必要な場合、パスワードを変更できます。
アカウントのパスワードを初期化する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールの Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
- アカウントのパスワードを初期化するアカウントを選択してアカウント設定の変更 > アカウントパスワードの初期化をクリックします。
- アカウントパスワードの変更初期化画面が表示されたら、変更する新規パスワードを入力して [変更] ボタンをクリックします。
アカウント削除
使用しなくなったアカウントは削除できます。アカウントを削除する方法は、次の通りです。
- NAVERクラウドプラットフォームコンソールの Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
- 削除するアカウントを選択し、[削除] ボタンをクリックします。
- アカウントの削除画面に削除するアカウントの名前を入力して [削除] ボタンをクリックします。
- アカウントにアプリが存在する場合、そのアカウントは削除できません。アカウントを削除する前に、アプリを先に削除してください。
- アカウントを削除する場合、そのアカウントの HDFSに保存されたデータとファイルもすべて削除され復旧できなくなりますので、ご注意ください。
アカウントの認証
Data Forestでユーザーを認証する方法は2つあります。アカウント名とパスワードを使用する方法と、Kerberosプリンシパルとキータブを使用する方法を説明します。
アカウント名とパスワードを使用する
Web UI - SSO
Data Forestは kr.df.naverncp.com
ドメインを使用します。クッキー情報を基にログイン情報を維持するため、同じドメインに限っては別途ログインする必要がありません。koya-nn1.kr.df.naverncp.comにログインしたら rm1.kr.df.naverncp.comにもすぐアクセスできます。HTTPクッキーを基盤に動作する SSOであるため、ドメインが異なる場合には SSOが適用されません。
Web UIにログインする方法は、次の通りです。
- Web SSOをサポートするウェブサーバにアクセスします。
- ログイン画面が表示されたら、Username、Password項目に Data Forest作成時に指定したアカウント名とパスワードをそれぞれ入力して [LOGIN] ボタンをクリックします。
アカウント名とパスワードが一致しない場合、IDとパスワードの入力を求めるポップアップが表示されます。ポップアップに情報を入力しないで [キャンセル] ボタンをクリックし、以前のログイン UIで再度ログインをお試しください。
認証過程ではセッションクッキーを使用します。ログインセッションは最大10時間維持されます。そのため、ブラウザを終了させなかった場合は10時間後に再ログインが求められます。ログアウト機能は特にありません。ブラウザを完全に終了させるか、クッキーを削除するとログアウトできます。(kr.df.naverncp.comドメインに対し、hadoop.auth、hadoop-jwtクッキーを削除)
Web UIからログアウトする方法は、次の通りです。
- Chromeブラウザを基準として、ブラウザで [その他のツール] > [デベロッパーツール] ボタンをクリックします。
- [Application] タブで [Storage] > [Cookies] をクリックします。
- kr.df.naverncp.comドメインのクッキーをクリックします。
- hadoop.auth, hadoop-jwtを右クリックし、[Delete] をクリックします。クッキーが削除されます。
HTTP API - Basic
Basic Authenticationを使用する HTTP APIには、-u
オプションを使用してusername:password
を明示します。
$ curl -s -u example "https://sso.kr.df.naverncp.com/gateway/koya-auth-basic/webhdfs/v1?op=GETHOMEDIRECTORY" | python -m json.tool
Enter host password for user 'example':
{
"Path": "/user/example"
}
または、Authorization: Basic $ENCODED_STRING
ヘッダを与えると-u
オプションなしでも認証できます。ENCODED_STRING
はusername:password
を Base64形式でエンコードした値です。
curl -s -H "Authorization: Basic ZXhhbXBsZTohQFF3ZXJ0MTI=" "https://sso.kr.df.naverncp.com/gateway/koya-auth-basic/webhdfs/v1?op=GETHOMEDIRECTORY" | python -m json.tool
{
"Path": "/user/example"
}
Kerberos principal とキータブを使用する
Kerberos principalは Kerberosシステムで固有のアイデンティティを示します。キータブファイルは Kerberos principalに対応する対称キーアルゴリズムで使用する暗号化キーを持つことで、パスワードの役割を果たします。Kerberos認証には使用するホストに追加設定が必要であり、OS別に設定方法が異なります。
Kerberosキータブファイルは担当者以外はアクセスできないように管理してください。Kerberosキータブファイルが漏洩した場合、そのファイルを取得した第三者がキータブに明示された Principalの権限を使用できます。Publicサーバや誰もがアクセスできる Privateソースのストレージにキータブファイルをアップロードしないようにご注意ください。
キータブ認証と内容の確認
アップロードされたキーはkinit
コマンドを使用して認証できます。
キーを HDFSにアップロードする方法は、Devアプリを使用する > Kerberosの認証をご参照ください。
CentOS7
$ kinit example -kt df.example.keytab
$ klist -5
Ticket cache: FILE:/tmp/krb5cc_p46655
Default principal: example@KR.DF.NAVERNCP.COM
Valid starting Expires Service principal
04/05/2021 18:02:22 04/06/2021 18:02:22 krbtgt/KR.DF.NAVERNCP.COM@KR.DF.NAVERNCP.COM
renew until 04/12/2021 18:02:22
キータブファイルの内容を確認するにはklist
コマンドを使用してください。
$ klist -kte df.example.keytab
Keytab name: FILE:df.example.keytab
KVNO Timestamp Principal
---- ------------------- ------------------------------------------------------
4 12/28/2020 11:13:57 example@KR.DF.NAVERNCP.COM (aes256-cts-hmac-sha1-96)
4 12/28/2020 11:13:57 example@KR.DF.NAVERNCP.COM (aes128-cts-hmac-sha1-96)
4 12/28/2020 11:13:57 example@KR.DF.NAVERNCP.COM (des3-cbc-sha1)
macOS
$ kinit --keytab=df.example.keytab example
$ klist -5
Credentials cache: API:B94B9BE6-0510-4621-B6B9-E48F30488DAC
Principal: example@KR.DF.NAVERNCP.COM
Issued Expires Principal
Apr 5 18:11:06 2021 Apr 6 18:11:06 2021 krbtgt/KR.DF.NAVERNCP.COM@KR.DF.NAVERNCP.COM
$ ktutil --keytab=df.example.keytab list
df.example.keytab:
Vno Type Principal Aliases
4 aes256-cts-hmac-sha1-96 example@KR.DF.NAVERNCP.COM
4 aes128-cts-hmac-sha1-96 example@KR.DF.NAVERNCP.COM
4 des3-cbc-sha1 example@KR.DF.NAVERNCP.COM
HTTP API - SPNEGO
HTTP APIは SPNEGOを使用します。HTTP APIは呼び出しの前に Kerberos認証を先に行います。Kerberos認証後には cURLで簡単に SPNEGOを使用できます。
wget
は SPNEGOをサポートしません。
キータブ認証と内容の確認を参考にして先にkinit
を実行し、-u : --negotiate
オプションを使用してください。
$ kinit example -kt df.example.keytab
$ curl -u : --negotiate "https://sso.kr.df.naverncp.com/gateway/koya-auth-kerb/webhdfs/v1/user/example?op=GETHOMEDIRECTORY" | python -m json.tool
{
"Path": "/user/example"
}
または、Authorization: Negotiate $ENCODED_STRING
ヘッダを与えると-u
オプションなしでも認証できます。ENCODED_STRING
はgssapi-data
を Base64形式でエンコードした値です。
curl -s -H "Authorization: Negotiate ZXhhbXBsZTohQFF3ZXJ0MTI=" "https://sso.kr.df.naverncp.com/gateway/koya-auth-kerb/webhdfs/v1/user/example?op=GETHOMEDIRECTORY" | python -m json.tool
{
"Path": "/user/example"
}
cURLは、ビルドのバージョンによっては SPNEGOをサポートしない場合があります。ビルドのバージョンを確認し、Featuresに GSS-Negotiate、SPNEGOがあるかどうか確認してください
$ curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.44 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets
HTTP API 認証方法の確認
エンドポイントだけを見てどのような認証方法を使用するのか分かりにくい場合は、認証情報なしにリクエストを呼び出すことができます。WWW-Authenticate
ヘッダ値に応じて認証方法を確認できます。
WWW-Authenticate | 認証方法 |
---|---|
Basic | Basic Auth |
Negotiate | SPENGO |
Basic Auth
$ curl -i "https://sso.kr.df.naverncp.com/gateway/koya-auth-basic/webhdfs/v1?op=GETHOMEDIRECTORY"
HTTP/1.1 401 Unauthorized
Date: Mon, 05 Apr 2021 09:39:53 GMT
Server: Jetty(9.4.12.v20180830)
WWW-Authenticate: BASIC realm="application"
Content-Length: 0
Set-Cookie: ROUTEID=.1; path=/
SPENGO
$ curl -i "https://sso.kr.df.naverncp.com/gateway/koya-auth-kerb/webhdfs/v1/user/example?op=GETFILESTATUS"
HTTP/1.1 401 Authentication required
Date: Mon, 05 Apr 2021 09:39:04 GMT
Server: Jetty(9.4.12.v20180830)
WWW-Authenticate: Negotiate
Cache-Control: must-revalidate,no-cache,no-store
Content-Type: text/html;charset=iso-8859-1
Content-Length: 391
Set-Cookie: hadoop.auth=; Path=gateway/koya-auth-kerb; Domain=sso.kr.df.naverncp.com; Secure; HttpOnly
Set-Cookie: ROUTEID=.2; path=/