What is @aws-sdk/credential-provider-node?
The @aws-sdk/credential-provider-node package provides a way to retrieve AWS credentials from various sources within a Node.js environment. It is part of the AWS SDK for JavaScript (v3) and is designed to work seamlessly with other AWS SDK modules to authenticate requests made to AWS services.
What are @aws-sdk/credential-provider-node's main functionalities?
Loading credentials from environment variables
This feature allows the retrieval of AWS credentials set in environment variables. It is useful when deploying applications on platforms where setting environment variables is the standard way to pass configuration.
const { fromEnv } = require('@aws-sdk/credential-provider-node');
const credentials = fromEnv();
Loading credentials from the shared credentials file
This feature enables the use of AWS credentials stored in the shared credentials file, typically located at ~/.aws/credentials. It is helpful for developers working locally or on EC2 instances with assigned IAM roles.
const { fromIni } = require('@aws-sdk/credential-provider-node');
const credentials = fromIni({ profile: 'my-profile' });
Loading credentials from EC2 Instance Metadata Service
This feature is for retrieving AWS credentials from the EC2 Instance Metadata Service. It is particularly useful for applications running on EC2 instances where IAM roles are used for granting permissions.
const { fromInstanceMetadata } = require('@aws-sdk/credential-provider-node');
const credentials = fromInstanceMetadata();
Loading credentials from ECS Container Metadata Service
This feature fetches AWS credentials from the ECS Container Metadata Service. It is intended for applications running in Amazon ECS containers with Task Roles.
const { fromContainerMetadata } = require('@aws-sdk/credential-provider-node');
const credentials = fromContainerMetadata();
Loading credentials from SSO
This feature allows the loading of AWS credentials via AWS Single Sign-On (SSO). It is useful for users who authenticate through SSO to access multiple AWS accounts.
const { fromSSO } = require('@aws-sdk/credential-provider-node');
const credentials = fromSSO();
Other packages similar to @aws-sdk/credential-provider-node
aws-sdk
The aws-sdk package is the previous version of the AWS SDK for JavaScript. It includes credential providers as part of its core, but it is not as modular as @aws-sdk/credential-provider-node, which allows for more flexible and lightweight installations.
aws-credentials
The aws-credentials package is another tool for managing AWS credentials. It is not as comprehensive or officially supported as @aws-sdk/credential-provider-node, and it may not integrate as seamlessly with the AWS SDK.
aws-profile-utils
aws-profile-utils is a utility package for managing AWS profiles and credentials. While it provides some similar functionalities, it is not as focused on credential retrieval for SDK usage and does not provide the same level of integration with AWS SDK services.