管理 IAM 访问密钥 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SDK for JavaScriptV3 API 参考指南详细描述了Amazon SDK for JavaScript版本 3 (V3) 的所有 API 操作。

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

管理 IAM 访问密钥

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

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

场景

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

在此示例中,一系列 Node.js 模块用于管理 IAM 中的访问密钥。Node.js 模块使用软件开发工具包通过IAM客户端类的以下方法管理 IAM 访问密钥: JavaScript

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

必备任务

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

  • 设置项目环境以运行这些 Node TypeScript 示例,并安装所需的模块Amazon SDK for JavaScript和第三方模块。按照上的说明进行操作GitHub

  • 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证

重要

这些示例演示如何使用 ecmascript6 (ES6) 导入/导出客户端服务对象和命令。

创建用户访问密钥

创建一个libs目录,然后使用文件名创建 Node.js 模块iamClient.js。将以下代码复制并粘贴到其中,这将创建 IAM 客户端对象。将区域替换为您的Amazon区域。

import { IAMClient } from "@aws-sdk/client-iam"; // Set the AWS Region. const REGION = "REGION"; // For example, "us-east-1". // Create an IAM service client object. const iamClient = new IAMClient({ region: REGION }); export { iamClient };

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

创建文件名为 iam_createaccesskeys.js 的 Node.js 模块。请务必按照前面所示配置 SDK,包括下载所需的客户端和软件包。创建一个 JSON 对象,其中包含创建新访问密钥所需的参数,包括 IAM 用户的姓名。调用IAM客户端服务对象CreateAccessKeyCommand的方法。

注意

IAM_USER_N AME 替换为 IAM 用户名。

// Import required AWS SDK clients and commands for Node.js. import { iamClient } from "./libs/iamClient.js"; import { CreateAccessKeyCommand } from "@aws-sdk/client-iam"; // Set the parameters. export const params = {UserName: "IAM_USER_NAME"}; //IAM_USER_NAME export const run = async () => { try { const data = await iamClient.send(new CreateAccessKeyCommand(params)); console.log("Success", data); return data; } catch (err) { console.log("Error", err); } }; run();

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

node iam_createaccesskeys.js > newuserkeysV3.txt

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

列出用户的访问密钥

创建一个libs目录,然后使用文件名创建 Node.js 模块iamClient.js。将以下代码复制并粘贴到其中,这将创建 IAM 客户端对象。将区域替换为您的Amazon区域。

import { IAMClient } from "@aws-sdk/client-iam"; // Set the AWS Region. const REGION = "REGION"; // For example, "us-east-1". // Create an IAM service client object. const iamClient = new IAMClient({ region: REGION }); export { iamClient };

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

创建文件名为 iam_listaccesskeys.js 的 Node.js 模块。请务必按照前面所示配置 SDK,包括下载所需的客户端和软件包。创建一个 JSON 对象,其中包含检索用户访问密钥所需的参数,其中包括 IAM 用户名和列出的最大访问密钥对数(可选)。调用IAM客户端服务对象ListAccessKeysCommand的方法。

注意

IAM_USER_N AME 替换为 IAM 用户名。

// Import required AWS SDK clients and commands for Node.js. import { iamClient } from "./libs/iamClient.js"; import { ListAccessKeysCommand } from "@aws-sdk/client-iam"; // Set the parameters. export const params = { MaxItems: 5, UserName: "IAM_USER_NAME", //IAM_USER_NAME }; export const run = async () => { try { const data = await iamClient.send(new ListAccessKeysCommand(params)); console.log("Success", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行此示例,请在命令提示符处输入以下内容。

node iam_listaccesskeys.js

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

获取访问密钥的最后用途

创建一个libs目录,然后使用文件名创建 Node.js 模块iamClient.js。将以下代码复制并粘贴到其中,这将创建 IAM 客户端对象。将区域替换为您的Amazon区域。

import { IAMClient } from "@aws-sdk/client-iam"; // Set the AWS Region. const REGION = "REGION"; // For example, "us-east-1". // Create an IAM service client object. const iamClient = new IAMClient({ region: REGION }); export { iamClient };

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

创建文件名为 iam_accesskeylastused.js 的 Node.js 模块。请务必按照前面所示配置 SDK,包括下载所需的客户端和软件包。创建一个 JSON 对象,其中包含创建新访问密钥所需的参数,即上次使用信息的访问密钥 ID。调用 IAM 服务对象的 GetAccessKeyLastUsedCommand 方法。

注意

ACCESS_KEY_ID 替换为上次使用信息的访问密钥 ID。

// Import required AWS SDK clients and commands for Node.js. import { iamClient } from "./libs/iamClient.js"; import { GetAccessKeyLastUsedCommand } from "@aws-sdk/client-iam"; // Set the parameters. export const params = { AccessKeyId: "ACCESS_KEY_ID" }; //ACCESS_KEY_ID export const run = async () => { try { const data = await iamClient.send(new GetAccessKeyLastUsedCommand(params)); console.log("Success", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行此示例,请在命令提示符处输入以下内容。

node iam_accesskeylastused.js

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

更新访问密钥状态

创建一个libs目录,然后使用文件名创建 Node.js 模块iamClient.js。将以下代码复制并粘贴到其中,这将创建 IAM 客户端对象。将区域替换为您的Amazon区域。

import { IAMClient } from "@aws-sdk/client-iam"; // Set the AWS Region. const REGION = "REGION"; // For example, "us-east-1". // Create an IAM service client object. const iamClient = new IAMClient({ region: REGION }); export { iamClient };

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

创建文件名为 iam_updateaccesskey.js 的 Node.js 模块。请务必按照前面所示配置 SDK,包括下载所需的客户端和软件包。创建一个包含更新访问密钥状态时所需参数的 JSON 对象,其中包括访问密钥 ID 和更新后的状态。状态可以为 ActiveInactive。调用IAM客户端服务对象updateAccessKey的方法。

注意

ACCESS_KEY_ID 替换访问密钥 ID 和更新后的状态,将 USER_N AME 替换为用户名。

// Import required AWS SDK clients and commands for Node.js. import { iamClient } from "./libs/iamClient.js"; import { UpdateAccessKeyCommand } from "@aws-sdk/client-iam"; // Set the parameters. export const params = { AccessKeyId: "ACCESS_KEY_ID", //ACCESS_KEY_ID Status: "Active", UserName: "USER_NAME", //USER_NAME }; export const run = async () => { try { const data = await iamClient.send(new UpdateAccessKeyCommand(params)); console.log("Success", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行此示例,请在命令提示符处输入以下内容。

node iam_updateaccesskey.js

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

删除访问密钥

创建一个libs目录,然后使用文件名创建 Node.js 模块iamClient.js。将以下代码复制并粘贴到其中,这将创建 IAM 客户端对象。将区域替换为您的Amazon区域。

import { IAMClient } from "@aws-sdk/client-iam"; // Set the AWS Region. const REGION = "REGION"; // For example, "us-east-1". // Create an IAM service client object. const iamClient = new IAMClient({ region: REGION }); export { iamClient };

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

创建文件名为 iam_deleteaccesskey.js 的 Node.js 模块。请务必按照前面所示配置 SDK,包括下载所需的客户端和软件包。创建一个包含删除访问密钥时所需参数的 JSON 对象,其中包括访问密钥 ID 和用户的名称。调用IAM客户端服务对象DeleteAccessKeyCommand的方法。

注意

ACCESS_KEY_ID 替换为您的访问密钥 ID,将 USER_NAM E 替换为用户名。

// Import required AWS SDK clients and commands for Node.js. import { iamClient } from "./libs/iamClient.js"; import { DeleteAccessKeyCommand } from "@aws-sdk/client-iam"; // Set the parameters. export const params = { AccessKeyId: "ACCESS_KEY_ID", // ACCESS_KEY_ID UserName: "USER_NAME", // USER_NAME }; export const run = async () => { try { const data = await iamClient.send(new DeleteAccessKeyCommand(params)); console.log("Success", data); return data; } catch (err) { console.log("Error", err); } }; run();

要运行此示例,请在命令提示符处输入以下内容。

node iam_deleteaccesskey.js

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