AWS SDK for JavaScript v2 はサポート終了となりました。AWS SDK for JavaScript v3 に移行することをお勧めします。その他の詳細、移行方法については、こちらの発表内容
IAM ユーザーの管理
この Node.js コード例は以下を示しています。
IAM ユーザーのリストを取得する方法。
ユーザーを作成および削除する方法。
ユーザー名を更新する方法。
シナリオ
この例では、一連の Node.js モジュールを使用して IAM のユーザーを作成および管理します。Node.js モジュールは SDK for JavaScript を使用し、AWS.IAM クライアントクラスの以下のメソッドを使用してユーザーの作成、削除、および更新を行います。
IAM ユーザーについての詳細は、IAM ユーザーガイドの IAM ユーザーを参照してください。
前提条件タスク
この例をセットアップして実行するには、まず次のタスクを完了する必要があります。
Node.js をインストールします。Node.js をインストールする方法の詳細については、Node.js ウェブサイト
を参照してください。 ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、共有認証情報ファイルから Node.js に認証情報をロードする を参照してください。
ユーザーの作成
iam_createuser.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。IAM にアクセスするには、AWS.IAM サービスオブジェクトを作成します。必要なパラメータを含む JSON オブジェクトを作成します。これは、新しいユーザーでコマンドラインパラメータとして使用するユーザー名で構成されています。
AWS.IAM サービスオブジェクトの getUser メソッドを呼び出して、ユーザー名が既に存在しているかどうかを確認します。ユーザー名が存在しない場合は、createUser メソッドを呼び出して作成します。名前が既に存在している場合は、そのことを示すメッセージをコンソールに書き込みます。
// 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 = { UserName: process.argv[2], }; iam.getUser(params, function (err, data) { if (err && err.code === "NoSuchEntity") { iam.createUser(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } }); } else { console.log( "User " + process.argv[2] + " already exists", data.User.UserId ); } });
この例を実行するには、コマンドラインに次のように入力します。
node iam_createuser.jsUSER_NAME
このサンプルコードは、このGitHub
アカウントのユーザーの一覧表示
iam_listusers.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。IAM にアクセスするには、AWS.IAM サービスオブジェクトを作成します。ユーザーの一覧表示に必要なパラメータを含む JSON オブジェクトを作成し、MaxItems パラメータを 10 に設定して返される数を制限します。AWS.IAM サービスオブジェクトの listUsers メソッドを呼び出します。最初のユーザー名と作成日をコンソールに書き込みます。
// 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: 10, }; iam.listUsers(params, function (err, data) { if (err) { console.log("Error", err); } else { var users = data.Users || []; users.forEach(function (user) { console.log("User " + user.UserName + " created", user.CreateDate); }); } });
この例を実行するには、コマンドラインに次のように入力します。
node iam_listusers.js
このサンプルコードは、このGitHub
ユーザー名の更新
iam_updateuser.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。IAM にアクセスするには、AWS.IAM サービスオブジェクトを作成します。現在のユーザー名と新しいユーザー名をコマンドラインパラメータとして指定して、ユーザーの一覧表示に必要なパラメータを含む JSON オブジェクトを作成します。AWS.IAM サービスオブジェクトの updateUser メソッドを呼び出します。
// 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 = { UserName: process.argv[2], NewUserName: process.argv[3], }; iam.updateUser(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
この例を実行するには、コマンドラインで次のコマンドを入力し、現在のユーザー名に続けて新しいユーザー名を指定します。
node iam_updateuser.jsORIGINAL_USERNAMENEW_USERNAME
このサンプルコードは、このGitHub
ユーザーの削除
iam_deleteuser.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。IAM にアクセスするには、AWS.IAM サービスオブジェクトを作成します。必要なパラメータを含む JSON オブジェクトを作成します。これは、コマンドラインパラメータとして削除するユーザー名で構成されています。
AWS.IAM サービスオブジェクトの getUser メソッドを呼び出して、ユーザー名が既に存在しているかどうかを確認します。ユーザー名が存在していない場合は、そのことを示すメッセージをコンソールに書き込みます。ユーザーが存在する場合は、deleteUser メソッドを呼び出して削除します。
// 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 = { UserName: process.argv[2], }; iam.getUser(params, function (err, data) { if (err && err.code === "NoSuchEntity") { console.log("User " + process.argv[2] + " does not exist."); } else { iam.deleteUser(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } }); } });
この例を実行するには、コマンドラインに次のように入力します。
node iam_deleteuser.jsUSER_NAME
このサンプルコードは、このGitHub