AWS S3 で IAM role を考慮して credentialProvider するサンプルコード [AWS SDK for JavaScript]
AWS S3 で IAM role を考慮して credentialProvider を利用するサンプルコードをご紹介します。
サンプルコードは aws-sdk npm を利用して TypeScript で書いてます。
import * as AWS from 'aws-sdk';
private createClient() {
  const config: AWS.S3.Types.ClientConfiguration = {
    endpoint: new AWS.Endpoint(process.env.AWS_S3_ENDPOINT),
    credentialProvider: new AWS.CredentialProviderChain(),
    sslEnabled: true,
    signatureVersion: 'v4',
  };
  return new AWS.S3(config);
}
import * as AWS from 'aws-sdk';
private createClient() {
  const config: AWS.S3.Types.ClientConfiguration = {
    endpoint: new AWS.Endpoint(process.env.AWS_S3_ENDPOINT),
    s3ForcePathStyle: true,
    sslEnabled: true,
    signatureVersion: 'v4',
  };
  if (
    process.env.NODE_ENV === 'development' ||
    process.env.NODE_ENV === 'test'
  ) {
    // NOTE: minio のために @deprecated な property も設定
    config.accessKeyId = process.env.AWS_S3_ACCESS_KEY_ID;
    config.secretAccessKey = process.env.AWS_S3_SECRET_ACCESS_KEY;
  } else {
    config.credentialProvider = new AWS.CredentialProviderChain();
  }
  return new AWS.S3(config);
}
以上、AWS S3 で IAM role を考慮して credentialProvider を利用した、現場からお送りしました。