管理 IAM 访问密钥 - AWS SDK for JavaScript

我们已宣布即将终止对 AWS SDK for JavaScript v2 的支持。建议您迁移到 AWS SDK for JavaScript v3。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

管理 IAM 访问密钥

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何管理您的用户的访问密钥。

情景

用户需要自己的访问密钥从 SDK for JavaScript 以编程方式调用 AWS。要满足这一需要,您可以创建、修改、查看或轮换 IAM 用户的访问密钥 (访问密钥 ID 和秘密访问密钥)。默认情况下,当您创建访问密钥时,其状态为 Active,这意味着用户可使用该访问密钥执行 API 调用。

本示例使用一系列 Node.js 模块在 IAM 中管理访问密钥。这些 Node.js 模块使用 SDK for JavaScript,通过 AWS.IAM 客户端类的以下方法来管理 IAM 访问密钥:

有关 IAM 访问密钥的更多信息,请参阅《IAM 用户指南》中的访问密钥

先决条件任务

要设置和运行此示例,您必须先完成以下任务:

为用户创建访问密钥

创建文件名为 iam_createaccesskeys.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 IAM,请创建 AWS.IAM 服务对象。创建一个包含创建新访问密钥时所需参数的 JSON 对象,其中包括 IAM 用户的名称。调用 AWS.IAM 服务对象的 createAccessKey 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the IAM service object var iam = new AWS.IAM({ apiVersion: "2010-05-08" }); iam.createAccessKey({ UserName: "IAM_USER_NAME" }, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.AccessKey); } });

要运行示例,请在命令行中键入以下内容。确保将返回的数据通过管道传输到文本文件中,以免丢失私有密钥,该密钥只能提供一次。

node iam_createaccesskeys.js > newuserkeys.txt

此示例代码可在 GitHub 上的此处找到。

列出用户的访问密钥

创建文件名为 iam_listaccesskeys.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 IAM,请创建 AWS.IAM 服务对象。创建一个包含检索用户访问密钥时所需参数的 JSON 对象,其中包括 IAM 用户的名称以及您希望列出的最大访问密钥对数(可选)。调用 AWS.IAM 服务对象的 listAccessKeys 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the IAM service object var iam = new AWS.IAM({ apiVersion: "2010-05-08" }); var params = { MaxItems: 5, UserName: "IAM_USER_NAME", }; iam.listAccessKeys(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

要运行示例,请在命令行中键入以下内容。

node iam_listaccesskeys.js

此示例代码可在 GitHub 上的此处找到。

获取访问密钥的最后一次使用

创建文件名为 iam_accesskeylastused.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 IAM,请创建 AWS.IAM 服务对象。创建一个包含创建新访问密钥时所需参数的 JSON 对象,这是您希望获得最后一次使用信息的访问密钥 ID。调用 AWS.IAM 服务对象的 getAccessKeyLastUsed 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the IAM service object var iam = new AWS.IAM({ apiVersion: "2010-05-08" }); iam.getAccessKeyLastUsed( { AccessKeyId: "ACCESS_KEY_ID" }, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.AccessKeyLastUsed); } } );

要运行示例,请在命令行中键入以下内容。

node iam_accesskeylastused.js

此示例代码可在 GitHub 上的此处找到。

更新访问密钥状态

创建文件名为 iam_updateaccesskey.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 IAM,请创建 AWS.IAM 服务对象。创建一个包含更新访问密钥状态时所需参数的 JSON 对象,其中包括访问密钥 ID 和更新后的状态。状态可以为 ActiveInactive。调用 AWS.IAM 服务对象的 updateAccessKey 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the IAM service object var iam = new AWS.IAM({ apiVersion: "2010-05-08" }); var params = { AccessKeyId: "ACCESS_KEY_ID", Status: "Active", UserName: "USER_NAME", }; iam.updateAccessKey(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

要运行示例,请在命令行中键入以下内容。

node iam_updateaccesskey.js

此示例代码可在 GitHub 上的此处找到。

删除访问密钥

创建文件名为 iam_deleteaccesskey.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 IAM,请创建 AWS.IAM 服务对象。创建一个包含删除访问密钥时所需参数的 JSON 对象,其中包括访问密钥 ID 和用户的名称。调用 AWS.IAM 服务对象的 deleteAccessKey 方法。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the IAM service object var iam = new AWS.IAM({ apiVersion: "2010-05-08" }); var params = { AccessKeyId: "ACCESS_KEY_ID", UserName: "USER_NAME", }; iam.deleteAccessKey(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

要运行示例,请在命令行中键入以下内容。

node iam_deleteaccesskey.js

此示例代码可在 GitHub 上的此处找到。