📜  aws sts get-caller-identity 提取帐户 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:13:34.715000             🧑  作者: Mango

AWS STS Get Caller Identity 提取帐户 - TypeScript

这是一个使用 AWS STS (Security Token Service) 的 TypeScript 函数,用于提取用户的调用者身份 (Caller Identity)。可以通过此函数获取当前的 AWS 账户 ID、用户 ID 和用户的 ARN。

import { STSClient, GetCallerIdentityCommand } from "@aws-sdk/client-sts";

/**
 * 获取当前的 AWS 账户 ID、用户 ID 和用户的 ARN。
 * @returns {Promise<{ accountId: string, userId: string, arn: string }>} 获取到的简要调用者身份信息。
 */
async function getCallerIdentity(): Promise<{ accountId: string, userId: string, arn: string }> {
  const stsClient = new STSClient(/* 可选参数: 配置 AWS 身份验证凭据等 */);
  const command = new GetCallerIdentityCommand({});

  try {
    const response = await stsClient.send(command);
    const { Account, UserId, Arn } = response;
    
    return { accountId: Account, userId: UserId, arn: Arn };
  } catch (error) {
    console.error("无法提取调用者身份信息:", error);
    throw error;
  }
}

要使用此函数,您需要安装 AWS SDK for JavaScript v3 的 @aws-sdk/client-sts 包。您可以使用 npm 来安装它:

npm install --save @aws-sdk/client-sts

为了调用 getCallerIdentity() 函数,您可以在 TypeScript 中引入此函数,并使用 async/await 或 Promises 进行调用。以下是使用 async/await 的示例:

async function main() {
  try {
    const callerIdentity = await getCallerIdentity();
    console.log("账户 ID:", callerIdentity.accountId);
    console.log("用户 ID:", callerIdentity.userId);
    console.log("用户 ARN:", callerIdentity.arn);
  } catch (error) {
    // 处理错误
  }
}

main();

请记住,要成功调用 getCallerIdentity(),您需要在环境中配置有效的 AWS 身份验证凭据,这样您的应用程序才能与 AWS 进行交互。