JindoFS Object Storage Service (OSS) 認証情報プロバイダーは、暗号化された AccessKey 認証情報を設定ファイルに保存し、プレーンテキストで公開されるのを防ぎます。SmartData 3.4.0 以降では、1 つ以上のプロバイダーをグローバル (すべてのバケット) または OSS バケットごとに設定できます。
バージョン要件
| プロバイダー | 最小 SmartData バージョン |
|---|---|
| TemporaryAliyunCredentialsProvider | 3.4.0 |
| SimpleAliyunCredentialsProvider | 3.4.0 |
| EnvironmentVariableCredentialsProvider | 3.4.0 |
| JindoCommonCredentialsProvider | 3.4.0 |
| EcsStsCredentialsProvider | 3.4.0 |
| JindoRangerCredentialsProvider | 3.8.0 |
| AssumeRoleStsCredentialsProvider | 3.8.0 |
認証情報プロバイダーの選択
ご利用の認証方式に合ったプロバイダーを選択してください:
| プロバイダー | 使用する状況 |
|---|---|
TemporaryAliyunCredentialsProvider | 有効期間の短い AccessKey ペアとセキュリティトークン |
SimpleAliyunCredentialsProvider | 有効期間の長い AccessKey ペア |
EnvironmentVariableCredentialsProvider | 環境変数として保存された認証情報 |
JindoCommonCredentialsProvider | JindoOSS と JindoFS の両方で共有される認証情報 |
EcsStsCredentialsProvider | Elastic Compute Service (ECS) インスタンスからのパスワードなしのアクセス (AccessKey は不要) |
JindoRangerCredentialsProvider | Apache Ranger によって制御される OSS へのアクセス (SmartData 3.8.0 以降) |
AssumeRoleStsCredentialsProvider | Resource Access Management (RAM) ロールを偽装して Security Token Service (STS) 経由で一時的な認証情報を取得 (SmartData 3.8.0 以降) |
複数のプロバイダーをカンマ区切りのリストとして指定できます。システムは各プロバイダーを順番に試し、有効な認証情報を返した最初のプロバイダーを使用します。例:
com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider,com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider認証情報プロバイダーの設定
前提条件
開始する前に、以下を確認してください:
SmartData 3.4.0 以降を実行している EMR クラスター
Alibaba Cloud EMR コンソールへのアクセス権限
ステップ 1: SmartData の [設定] タブを開く
Alibaba Cloud EMR コンソールにログインします。
上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、リソースグループを選択します。
[クラスター管理] タブをクリックします。
対象のクラスターを見つけ、[操作] 列の [詳細] をクリックします。
左側のナビゲーションウィンドウで、[クラスターサービス] > [SmartData] を選択します。
[設定] タブをクリックします。
ステップ 2: プロバイダー設定の追加
設定範囲を選択します:
グローバル (すべてのバケット): smartdata-site タブの [設定フィルター] セクションで、
fs.jfs.cache.oss.credentials.providerパラメーターを見つけ、その値にプロバイダーのクラス名を追加します。バケットレベル: smartdata-site タブの右上隅にある [カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、[キー] を
fs.jfs.cache.oss.bucket.<bucket-name>.credentials.providerに、[値] をプロバイダーのクラス名に設定します。説明<bucket-name>を OSS バケットの名前に置き換えてください。重要JindoRangerCredentialsProviderを使用する場合、smartdata-site タブではなく namespace タブに設定を追加してください。
次に、プロバイダーに必要なパラメーターを追加します。完全なパラメーターリストについては、「プロバイダーリファレンス」をご参照ください。
ステップ 3: 設定の保存
[サービス設定] セクションの右上隅にある [保存] をクリックします。
[変更の確認] ダイアログボックスで、説明を入力し、[設定の自動更新] をオンにします。
[OK] をクリックします。
プロバイダーリファレンス
TemporaryAliyunCredentialsProvider
有効期間の短い AccessKey ペアとセキュリティトークンに使用します。
クラス名: com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider
smartdata-site タブに以下のパラメーターを追加します:
グローバル設定
| パラメーター | 説明 |
|---|---|
fs.jfs.cache.oss.accessKeyId | AccessKey ID |
fs.jfs.cache.oss.accessKeySecret | AccessKey Secret |
fs.jfs.cache.oss.securityToken | 一時的なセキュリティトークン |
バケットレベル設定
| パラメーター | 説明 |
|---|---|
fs.jfs.cache.oss.bucket.<bucket-name>.accessKeyId | AccessKey ID |
fs.jfs.cache.oss.bucket.<bucket-name>.accessKeySecret | AccessKey Secret |
fs.jfs.cache.oss.bucket.<bucket-name>.securityToken | 一時的なセキュリティトークン |
SimpleAliyunCredentialsProvider
有効期間の長い AccessKey ペアに使用します。
クラス名: com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider
smartdata-site タブに以下のパラメーターを追加します:
グローバル設定
| パラメーター | 説明 |
|---|---|
fs.jfs.cache.oss.accessKeyId | AccessKey ID |
fs.jfs.cache.oss.accessKeySecret | AccessKey Secret |
バケットレベル設定
| パラメーター | 説明 |
|---|---|
fs.jfs.cache.oss.bucket.<bucket-name>.accessKeyId | AccessKey ID |
fs.jfs.cache.oss.bucket.<bucket-name>.accessKeySecret | AccessKey Secret |
EnvironmentVariableCredentialsProvider
認証情報がクラスターノードの環境変数として保存されている場合に使用します。
クラス名: com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider
以下の環境変数を設定します:
| 変数 | 説明 |
|---|---|
ALIYUN_ACCESS_KEY_ID | AccessKey ID |
ALIYUN_ACCESS_KEY_SECRET | AccessKey Secret |
ALIYUN_SECURITY_TOKEN | 一時的なセキュリティトークン。トークンに有効期間がある場合にのみ必須です。 |
JindoCommonCredentialsProvider
JindoOSS と JindoFS の両方で機能する汎用プロバイダーです。
クラス名: com.aliyun.emr.fs.auth.JindoCommonCredentialsProvider
smartdata-site タブに以下のパラメーターを追加します。これらのパラメーターは、グローバルとバケットレベルの両方の設定範囲に適用されます。
| パラメーター | 説明 |
|---|---|
jindo.common.accessKeyId | AccessKey ID |
jindo.common.accessKeySecret | AccessKey Secret |
jindo.common.securityToken | 一時的なセキュリティトークン |
EcsStsCredentialsProvider
ECS インスタンスからのパスワードなしのアクセスに使用します。AccessKey ペアは不要です。
クラス名: com.aliyun.emr.fs.auth.EcsStsCredentialsProvider
追加のパラメーターは不要です。
JindoRangerCredentialsProvider
Apache Ranger が OSS へのアクセスを制御する場合に使用します。SmartData 3.8.0 以降が必要です。
クラス名: com.aliyun.emr.fs.auth.JindoRangerCredentialsProvider
namespace タブで、以下のカスタムパラメーターを追加します:
| パラメーター | 値 |
|---|---|
namespace.oss.permission.method | ranger |
パラメーターを追加した後、Jindo Namespace Service を再起動します。詳細については、「Jindo Namespace Service の再起動」をご参照ください。
AssumeRoleStsCredentialsProvider
STS を介して RAM ロールを偽装することで取得した一時的な認証情報を使用して OSS にアクセスする場合に使用します。SmartData 3.8.0 以降が必要です。
クラス名: com.aliyun.emr.fs.auth.AssumeRoleStsCredentialsProvider
smartdata-site タブに以下のパラメーターを追加します:
| パラメーター | 説明 |
|---|---|
assume.role.sts.accessKeyId | STS から取得した AccessKey ID |
assume.role.sts.accessKeySecret | STS から取得した AccessKey Secret |
assume.role.sts.endpoint | STS エンドポイント。詳細については、「エンドポイント」をご参照ください。 |
assume.role.roleArn | RAM ロールの Alibaba Cloud Resource Name (ARN)。フォーマットは acs:ram::<accountID>:role/<roleName> です。ARN を表示する方法については、「RAM ロールの ARN を表示する方法 |
assume.role.roleSessionName | ロールセッション名。ユーザー名などの任意の識別子に設定します。 |
Jindo Namespace Service の再起動
JindoRangerCredentialsProvider を使用する場合、設定を追加した後に Jindo Namespace Service を再起動する必要があります。
SmartData サービスページの [設定] タブで、右上隅の [操作] をクリックし、[Jindo Namespace Service の再起動] を選択します。
[クラスターアクティビティ] ダイアログボックスで、説明を入力し、[OK] をクリックします。
確認メッセージで、[OK] をクリックします。