AWS S3¶
Amazon EKS に Denodo 組み込み MPP をデプロイする前に、 Denodo 組み込み MPP AWS チェックリスト で必要な準備がすべて完了していることを確認します。
AWS S3 データセットにアクセスする Denodo 組み込み MPP をデプロイするには、以下に示す 2 つのオプションがあります。
cluster.sh deployコマンドで AWS S3 資格情報を指定しません (推奨 オプション)。cluster.sh deploy --credstore-password xxx
Denodo 組み込み MPP が Amazon EKS で実行され、以下の 2 つの方法のどちらかを使用して S3 にアクセスする場合に使用します。
サービスアカウントの IAM ロール
そのために、以下に示す例のように、
values.yamlでserviceAccount.annotationsを使用して IAM ロールとserviceAccountを関連付けることができます。serviceAccount: create: true annotations: eks.amazonaws.com/role-arn: arn:aws:iam::<awsaccountid>:role/<role>
これで、Denodo 組み込み MPP は、その IAM ロールに構成されている権限を使用して、S3 にアクセスします。
IAM EC2 インスタンスプロファイル
cluster.sh deployコマンドで AWS S3 資格情報を指定します。cluster.sh deploy --s3-access-key xxx --s3-secret-access yyy --credstore-password zzz
--s3-access-key: アクセスキー ID。--s3-secret-access: シークレットアクセスキー。コマンドラインでこのシークレットが指定されない場合、
cluster.sh deployがシークレットの入力を要求し、bash の履歴にシークレットが残らないようにします。
AWS S3 にアクセスするための AWS の権限¶
Denodo 組み込み MPP が AWS S3 バケットにアクセスする場合に必要な AWS の権限を以下に示します。
AWS S3 からの読み込み:
s3:GetObjects3:ListBucket
AWS S3 への書き込み(読み込みと同じ権限に加えて以下の権限が必要):
s3:PutObjects3:DeleteObject
重要
AWS 資格情報プロバイダー
Denodo 組み込み MPP には、デフォルトで構成されている資格情報プロバイダーチェーン DenodoAWSCredentialsProviderChain が付属しています。
このチェーンは、以下の順序で AWS 資格情報を探します。
SimpleAWSCredentialsProvider: Hadoop 構成ファイルのプロパティfs.s3a.access.keyとfs.s3a.secret.keyから資格情報を読み込みます。EnvironmentVariableCredentialsProvider: 環境変数AWS_ACCESS_KEY_IDとAWS_SECRET_KEYから資格情報を読み込みます。SystemPropertiesCredentialsProvider: Java システムプロパティaws.accessKeyIdとaws.secretKeyから資格情報を読み込みます。WebIdentityTokenCredentialsProvider: 環境またはコンテナーから Web ID トークン資格情報を読み込みます。ProfileCredentialsProvider: デフォルトの場所~/.aws/credentialsにある資格情報プロファイルファイルを読み込みます。EC2ContainerCredentialsProviderWrapper: 通常はInstanceProfileCredentialsProviderを使用して、EC2 から資格情報を読み込みます。
上記のプロバイダーがどれもニーズに適合しない場合、以下のファイルで構成されている資格情報プロバイダーを変更する必要があります。
presto/conf/catalog/core-site.xml:presto.s3.credentials-providerプロパティの値を任意の AWS 資格情報プロバイダーで置き換えます。この資格情報プロバイダーが必要とする他のプロパティを含めます。
hive-metastore/conf/core-site.xml:fs.s3a.aws.credentials.providerプロパティの値を任意の AWS 資格情報プロバイダーで置き換えます。この資格情報プロバイダーが必要とする他のプロパティを含めます。
