

 [适用于 JavaScript 的 AWS SDK V3 API 参考指南](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)详细描述了 适用于 JavaScript 的 AWS SDK 版本 3 (V3) 的所有 API 操作。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Node.js 中设置凭证
<a name="setting-credentials-node"></a>

我们建议在本地开发且雇主未向其提供身份验证方法的新用户进行设置 AWS IAM Identity Center。有关更多信息，请参阅 [使用 SDK 进行身份验证 AWS](getting-your-credentials.md)。

Node.js 有几种方法可以为 SDK 提供凭证。其中一些方法更安全，而另一些方法则在开发应用程序时可以提供更大的便利。在 Node.js 中获取凭证时，请注意依赖多个源，例如环境变量和您加载的 JSON 文件。您可以更改运行代码的权限，而不会意识到已发生更改。

适用于 JavaScript 的 AWS SDK V3 在 Node.js 中提供了默认的凭证提供者链，因此您无需明确提供凭证提供商。默认[凭证提供程序链](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html#credentialProviderChain)会尝试按给定优先级解析来自各种不同源的凭证，直到从其中一个源返回凭证。您可以在此[处](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromnodeproviderchain)找到适用于 JavaScript V3 的 SDK 的凭证提供商链。

## 凭证提供程序链
<a name="credchain"></a>

所有 SDKs 人都有一系列地点（或来源）供他们检查，以便获得用于向某人提出请求的有效凭证 AWS 服务。找到有效凭证后，搜索即告停止。这种系统性搜索被称为默认凭证提供程序链。

对于链中的每个步骤，都有不同的设置值的方法。直接在代码中设置值始终优先，然后设置为环境变量，然后在共享 AWS `config`文件中设置。有关更多信息，请参阅《工具参考指南[》*AWS SDKs 和《工具参考指南》*中的设置优先级](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#precedenceOfSettings)。

《*AWS SDKs 和工具参考指南》*包含有关所有 AWS SDKs 人使用的 SDK 配置设置的信息 AWS CLI。要详细了解如何通过共享 AWS `config`文件配置 SDK，请参阅[共享配置和凭据文件](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html)。要详细了解如何通过设置环境变量来配置 SDK，请参阅[环境变量支持](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html)。

要进行身份验证 AWS，请按下表所列顺序 适用于 JavaScript 的 AWS SDK 检查凭证提供商。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html)

如果您遵循推荐的新用户入门方法，则可以在入门主题的 [使用 SDK 进行身份验证 AWS](getting-your-credentials.md) 中设置 AWS IAM Identity Center 身份验证。其他身份验证方法适用于不同的情况。为避免安全风险，我们建议始终使用短期凭证。有关其他身份验证方法的步骤，请参阅《[和*工具参考指南》中的身份验证AWS SDKs 和*访问权限](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)。

本部分中的主题介绍如何将凭证加载到 Node.js 中。

**Topics**
+ [凭证提供程序链](#credchain)
+ [从 IAM 角色为 Amazon EC2 加载 Node.js 中的凭证](loading-node-credentials-iam.md)
+ [加载 Node.js Lambda 函数的凭证](loading-node-credentials-lambda.md)

# 从 IAM 角色为 Amazon EC2 加载 Node.js 中的凭证
<a name="loading-node-credentials-iam"></a>

如果在 Amazon EC2 实例上运行 Node.js 应用程序，则可以利用 Amazon EC2 的 IAM 角色自动为实例提供凭证。如果将实例配置为使用 IAM 角色，则 SDK 会自动为您的应用程序选择 IAM 凭证，从而无需手动提供凭证。

有关将 IAM 角色添加到 Amazon EC2 实例的更多信息，请参阅[适用于 Amazon EC2 的 IAM 角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)。

# 加载 Node.js Lambda 函数的凭证
<a name="loading-node-credentials-lambda"></a>

创建 AWS Lambda 函数时，必须创建一个有权执行该函数的特殊 IAM 角色。此角色称为*执行角色*。当您设置 Lambda 函数时，您必须指定您创建的 IAM 角色作为相应的执行角色。

执行角色为 Lambda 函数提供运行和调用其他 Web 服务所需的凭证。因此，您不需要为在 Lambda 函数中编写的 Node.js 代码提供凭证。

有关您创建 Lambda 执行角色的更多信息，请参阅《AWS Lambda 开发人员指南》** 中的[管理权限：使用 IAM 角色（执行角色）](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role)。