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:GetObject
s3:ListBucket
AWS S3 への書き込み(読み込みと同じ権限に加えて以下の権限が必要):
s3:PutObject
s3: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 資格情報プロバイダーで置き換えます。この資格情報プロバイダーが必要とする他のプロパティを含めます。