AWS S3 で IAM role を考慮して credentialProvider するサンプルコード [AWS SDK for JavaScript]
- 2021 5/11
- カテゴリー : Amazon Web Services
- AWS S3
- コメントを書く
AWS S3 で IAM role を考慮して credentialProvider を利用するサンプルコードをご紹介します。
サンプルコードは aws-sdk npm を利用して TypeScript で書いてます。
AWS S3 で credentialProvider するサンプルコード
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);
}
AWS S3 で credentialProvider するサンプルコード (minio も考慮)
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 を利用した、現場からお送りしました。
参考情報
- Node.js での認証情報の設定 – AWS SDK for JavaScript
- Class: AWS.CredentialProviderChain — AWS SDK for JavaScript
- IAM Roleを設定したEC2インスタンスでCloudSearchにアクセスできなかったので対応した件 | DevelopersIO