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 を利用した、現場からお送りしました。