アカウントの作成と管理

Prev Next

VPC環境で利用できます。

Data Forestのアカウントとアプリを作成して管理する方法を説明します。

アカウント作成

Data Forestのアカウントを作成する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Big Data & Analytics > Data Forestメニューを順にクリックします。
  2. Accounts> [アカウント作成] ボタンをクリックします。
  3. アカウント名アカウントのパスワードを入力します。
    • アカウント名: アプリ提出時に必要なアカウント名を入力(最小2文字、最大16文字の英数字の組み合わせが可能)。アカウント名はクラスタ内で固有の値でなければならないため、[重複チェック] ボタンをクリックして重複していないか確認)
    • アカウントのパスワード: アカウントログイン時に使用するパスワードを入力(最小8文字、最大20文字であり、英字の大小文字、記号、数字がそれぞれ1文字以上入力する必要がある)
  4. [作成] ボタンをクリックします。
  5. アカウントリストでアカウントが作成されたか確認します。
    • アカウントの作成が完了するまで2~3分ほどかかります。
    • アカウントが正常に作成されると、アカウントのステータスが運用中に変更されます。
  6. アカウントのステータスが運用中になっているか確認します。
    df-account_03_vpc_ko
参考

Data Forestではユーザー別に1つのアカウントのみ作成・使用できます。

アカウント管理

Keytabのダウンロード

当該アカウントでクラスタにアクセスするには、Keytabファイルが必要です。Keytabファイルをダウンロードする方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
  2. アカウントを選択してクラスタのアクセス情報 > Kerberos keytabのダウンロードをクリックします。
  3. ダウンロード画面が表示された [ダウンロード] ボタンをクリックします。
    df-account_05_vpc_ko

HDFS Quotaの変更

アカウントが使用するクラスタの名前空間に応じて、各 HDFSのファイル数とファイル容量を変更できます。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
  2. HDFS Quotaを変更するアカウントを選択し、アカウント設定の変更 > HDFS Quotaの変更をクリックします。
  3. HDFS Quotaの変更画面が表示されたら、情報を変更して [変更] ボタンをクリックします。
    df-account_06_vpc_ko
    • 名前空間: 名前空間を選択
    • 変更するファイル数: 最小100万個から最大500万個まで、100万個単位で選択可能(デフォルト値: 100万個)
    • 変更するファイル容量: 最小200TBから最大500TBまで、100TB単位で選択可能(デフォルト値: 200TB)

Kerberos Keytabの初期化

ダウンロードした Keytabを紛失した場合や Keytabの変更が必要な場合、Kerberos Keytabを初期化できます。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
  2. Keytabを変更するアカウントを選択してアカウント設定の変更 > Kerberos keytabの初期化をクリックします。
  3. Kerberos Keytabの初期化画面が表示されたら、情報を確認して [初期化] ボタンをクリックします。
注意

Kerberos Keytabを初期化すると、既存の Keytabを使用するアプリケーション、バッチタスクはすべて失敗しますので、ご注意ください。

アカウントパスワードの初期化

アカウントのパスワードを紛失した場合やパスワードの変更が必要な場合、パスワードを変更できます。
アカウントのパスワードを初期化する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
  2. アカウントのパスワードを初期化するアカウントを選択してアカウント設定の変更 > アカウントパスワードの初期化をクリックします。
  3. アカウントパスワードの変更初期化画面が表示されたら、変更する新規パスワードを入力して [変更] ボタンをクリックします。

アカウント削除

使用しなくなったアカウントは削除できます。アカウントを削除する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Big Data & Analytics > Data Forest > Accountsメニューを順にクリックします。
  2. 削除するアカウントを選択し、[削除] ボタンをクリックします。
  3. アカウントの削除画面に削除するアカウントの名前を入力して [削除] ボタンをクリックします。
注意
  • アカウントにアプリが存在する場合、そのアカウントは削除できません。アカウントを削除する前に、アプリを先に削除してください。
  • アカウントを削除する場合、そのアカウントの HDFSに保存されたデータとファイルもすべて削除され復旧できなくなりますので、ご注意ください。

アカウントの認証

Data Forestでユーザーを認証する方法は2つあります。アカウント名とパスワードを使用する方法と、Kerberos principalと Keytabを使用する方法を説明します。

アカウント名とパスワードを使用

Web UI - SSO

Data Forestは kr.df.naverncp.com ドメインを使用します。Cookie情報を基にログイン情報を維持するため、同じドメインに限っては別途ログインする必要がありません。koya-nn1.kr.df.naverncp.comにログインしたら rm1.kr.df.naverncp.comにもすぐアクセスできます。HTTP Cookieをベースに動作する SSOであるため、ドメインが異なる場合には SSOが適用されません。

Web UIにログインする方法は、次の通りです。

  1. Web SSOをサポートするウェブサーバにアクセスします。
  2. ログイン画面が表示されたら、Username、Password項目に Data Forest作成時に指定したアカウント名とパスワードをそれぞれ入力して [LOGIN] ボタンをクリックします。
    df-auth_01_vpc_ko
参考

アカウント名とパスワードが一致しない場合、IDとパスワードの入力を求めるポップアップが表示されます。ポップアップに情報を入力しないで [キャンセル] ボタンをクリックし、以前のログイン UIで再度ログインをお試しください。
df-auth_02_vpc_ko

認証過程ではセッション Cookieを使用します。ログインセッションは最大10時間維持されます。そのため、ブラウザを終了させなかった場合は10時間後に再ログインが求められます。ログアウト機能は特にありません。ブラウザを完全に終了させるか、Cookieを削除するとログアウトできます。(kr.df.naverncp.comドメインに対し、hadoop.authhadoop-jwt Cookieを削除)

Web UIからログアウトする方法は、次の通りです。

  1. Chromeブラウザを基準として、ブラウザで [その他のツール] > [デベロッパーツール] ボタンをクリックします。
    df-auth_04_vpc_ko
  2. [Application] タブで [Storage] > [Cookies] をクリックします。
  3. kr.df.naverncp.comドメインの Cookieをクリックします。
    df-auth_05_vpc_ko
  4. hadoop.auth, hadoop-jwtを右クリックし、[Delete] をクリックします。Cookieが削除されます。
    df-auth_06_vpc_ko

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_STRINGusername: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と Keytabを使用する

Kerberos principalは Kerberosシステムで固有のアイデンティティを示します。Keytabファイルは Kerberos principalに対応する対称キーアルゴリズムで使用する暗号化キーを持つことで、パスワードのロールを実行します。Kerberos認証には使用するホストに追加設定が必要であり、OS別に設定方法が異なります。

注意

Kerberos Keytabファイルは担当者以外はアクセスできないように管理してください。Kerberos Keytabファイルが漏洩した場合、そのファイルを取得した第三者が Keytabに明示された Principalの権限を使用できます。Publicサーバや誰もがアクセスできる Privateソースのストレージに Keytabファイルをアップロードしないようにご注意ください。

Keytab認証と内容の確認

アップロードされたキーは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_STRINGgssapi-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-NegotiateSPNEGOがあるかどうか確認してください

$ 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=/