📅  最后修改于: 2023-12-03 15:13:34.715000             🧑  作者: Mango
这是一个使用 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 进行交互。