このトピックでは、Security Token Service (STS) トークンを使用して、Alibaba Cloud SDK V1.0 for Node.js で SDK クライアントを初期化する方法について説明します。
STS SDK をインストールする
npm install @alicloud/sts-sdk重要
Node.js のバージョンは 8.5.0 以降である必要があります。
例
const StsClient = require('@alicloud/sts-sdk');
const RPCClient = require('@alicloud/pop-core').RPCClient;
async function main() {
try {
// STS クライアントを初期化します。
const sts = new StsClient({
endpoint: 'sts.aliyuncs.com',
// 環境変数から Resource Access Management (RAM) ユーザーの AccessKey ID を取得します。
accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
// 環境変数から RAM ユーザーの AccessKey シークレットを取得します。
accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
});
const roleArn = 'ram_role_arn'; // RAM ロールの Alibaba Cloud Resource Name (ARN)。
const roleSessionName = 'role_session_name'; // ロールセッションの名前。
const durationSeconds = 3600; // ロールセッションの有効期間 (秒)。
const policy = ''; // 権限ポリシー。
// assumeRole オペレーションを呼び出して、STS トークンを取得します。
const assumeRoleResponse = await sts.assumeRole(roleArn, roleSessionName, policy, durationSeconds);
const credentials = assumeRoleResponse.Credentials;
// STS トークンを使用して、リモートプロシージャコール (RPC) スタイルの SDK クライアントを初期化します。
const client = new RPCClient({
accessKeyId: credentials.AccessKeyId,
accessKeySecret: credentials.AccessKeySecret,
securityToken: credentials.SecurityToken,
endpoint: 'https://ecs.cn-beijing.aliyuncs.com',
apiVersion: '2014-05-26',
});
const params = {};
const action = 'DescribeRegions';
const result = await client.request(action, params);
console.log(JSON.stringify(result));
} catch (err) {
console.error('エラーが発生しました:', err);
}
}
main();