資格情報プロバイダーを使用して、暗号化された AccessKey ペアをファイルに保存できます。 これにより、AccessKey ペアの漏洩を防ぎます。
背景情報
E-MapReduce(EMR)V3.30.0 は、JindoOSS 資格情報プロバイダーを提供します。 Hadoop 資格情報プロバイダーを使用して、暗号化された AccessKey ペアをファイルに保存できます。 これにより、AccessKey ペアがプレーンテキストで送信されるという問題を防ぎます。 要件に基づいて適切な JindoOSS 資格情報プロバイダーを選択できます。
JindoOSS 資格情報プロバイダーの構成
- SmartData サービスに移動します。
- Alibaba Cloud EMR コンソール にログインします。
- 上部のナビゲーションバーで、クラスターが存在するリージョンを選択します。 必要に応じてリソースグループを選択します。 デフォルトでは、アカウントのすべてのリソースが表示されます。
- [クラスター管理] タブをクリックします。
- 表示される [クラスター管理] ページで、ターゲットクラスターを見つけ、[アクション] 列の [詳細] をクリックします。
- 左側のナビゲーションペインで、[クラスターサービス] をクリックし、次に [smartdata] をクリックします。
- Alibaba Cloud EMR コンソール にログインします。
- [smartdata-site] タブに移動します。
- [構成] タブをクリックします。
- [サービス構成] セクションで、[smartdata-site] タブをクリックします。
- 構成情報を追加します。
- [smartdata-site] タブの右上隅にある [カスタム構成] をクリックします。
- [構成項目の追加] ダイアログボックスで、次の表に示すパラメーターを追加します。
パラメーター 説明 fs.jfs.cache.credentials.provider com.aliyun.emr.fs.auth.AliyunCredentialsProvider の実装クラスを指定します。 複数のクラスはコンマ(,)で区切ります。 有効な資格情報の値が見つかるまで、資格情報の値を順番に読み取ります。 例: com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider, com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider,com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider。要件に基づいて、さまざまな資格情報プロバイダーを選択できます。 次のプロバイダーがサポートされています:
Hadoop 資格情報プロバイダーを使用して AccessKey ペア情報を保存する
説明 Hadoop 資格情報プロバイダーの詳細については、「CredentialProvider API ガイド」をご参照ください。
fs.jfs.cache.oss.accessKeyId、fs.jfs.cache.oss.accessKeySecret、および fs.jfs.cache.oss.securityToken は、Hadoop 資格情報プロバイダーに保存できます。
Hadoop によって提供されるコマンドを使用して、AccessKey ペアとセキュリティトークン情報を資格情報ファイルに保存します。 コマンド例:
hadoop credential <subcommand> [options]たとえば、AccessKey ペアとトークン情報を jceks ファイルに保存します。 jceks は Java キーストアプロバイダーを示します。 ファイル権限を使用してファイルを保護するか、保存する情報を暗号化するキーを指定できます。 キーを指定しない場合は、デフォルトの文字列が暗号化に使用されます。
hadoop credential create fs.jfs.cache.oss.accessKeyId -value AAA -provider jceks://file/root/oss.jceks
hadoop credential create fs.jfs.cache.oss.accessKeySecret -value BBB -provider jceks://file/root/oss.jceks
hadoop credential create fs.jfs.cache.oss.securityToken -value CCC -provider jceks://file/root/oss.jceks資格情報ファイルが生成された後、次の表に示すパラメーターを構成して、プロバイダーのタイプと場所を指定する必要があります。
| パラメーター | 説明 |
| fs.jfs.cache.oss.security.credential.provider.path | AccessKey ペア情報を格納する資格情報ファイルを格納するために使用されるパス。 たとえば、このパラメーターを jceks://file/${user.home}/oss.jceks に設定できます。これは、oss.jceks ファイルがホームディレクトリに保存されていることを示します。 |
TemporaryAliyunCredentialsProvider
このプロバイダーは、有効期限のある AccessKey ペアとセキュリティトークン情報を使用して OSS にアクセスするシナリオに適しています。
| パラメーター | 説明 |
| fs.jfs.cache.credentials.provider | com.aliyun.emr.fs.auth.TemporaryAliyunCredentialsProvider |
| fs.jfs.cache.oss.accessKeyId | OSS にアクセスするために使用される AccessKey ID。 |
| fs.jfs.cache.oss.accessKeySecret | OSS にアクセスするために使用される AccessKey シークレット。 |
| fs.jfs.cache.oss.securityToken | OSS にアクセスするために使用される一時的なセキュリティトークン。 |
SimpleAliyunCredentialsProvider
このプロバイダーは、長期有効期限の AccessKey ペアを使用して OSS にアクセスするシナリオに適しています。
| パラメーター | 説明 |
| fs.jfs.cache.credentials.provider | com.aliyun.emr.fs.auth.SimpleAliyunCredentialsProvider |
| fs.jfs.cache.oss.accessKeyId | OSS にアクセスするために使用される AccessKey ID。 |
| fs.jfs.cache.oss.accessKeySecret | OSS にアクセスするために使用される AccessKey シークレット。 |
EnvironmentVariableCredentialsProvider
このプロバイダーを使用するには、次の表に示すパラメーターを構成する必要があります。
| パラメーター | 説明 |
| fs.jfs.cache.credentials.provider | com.aliyun.emr.fs.auth.EnvironmentVariableCredentialsProvider |
| ALIYUN_ACCESS_KEY_ID | OSS にアクセスするために使用される AccessKey ID。 |
| ALIYUN_ACCESS_KEY_SECRET | OSS にアクセスするために使用される AccessKey シークレット。 |
| ALIYUN_SECURITY_TOKEN | OSS にアクセスするために使用される一時的なセキュリティトークン。 説明 このパラメーターは、有効期限のあるトークンを構成する場合にのみ必要です。 |
InstanceProfileCredentialsProvider
このプロバイダーは AccessKey ペアを必要としません。 パスワードなしモードで OSS にアクセスできます。
| パラメーター | 説明 |
| fs.jfs.cache.credentials.provider | com.aliyun.emr.fs.auth.InstanceProfileCredentialsProvider |