📜  aws sts 假设角色示例 - TypeScript (1)

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

AWS STS 假设角色示例 - TypeScript

AWS STS (Security Token Service) 允许您向 AWS 资源授予临时访问权限。假设角色是一种 AWS STS 功能,可以使您跨帐户或跨域复制资源时更轻松地管理访问控制。

在本示例中,我们将介绍如何使用 AWS SDK for TypeScript 使用假设角色。

步骤 1:创建新角色

要在 AWS STS 中使用假设角色,您需要创建角色并向其分配适当的 IAM 策略。您可以按照 AWS 官方文档中的步骤进行操作。

步骤 2:安装 AWS SDK for TypeScript

使用 npm 包管理工具安装 AWS SDK for TypeScript:

npm install aws-sdk

安装完毕后,在您的 TypeScript 代码中导入 AWS SDK:

import * as AWS from 'aws-sdk';
步骤 3:创建 AWS STS 对象

创建 AWS.STS 对象并指定您的区域:

const sts = new AWS.STS({ region: 'us-east-1' });
步骤 4:AssumeRole

通过调用 sts.assumeRole() 方法来获取假设角色的凭证:

async function assumeRole(roleArn: string): Promise<AWS.STS.Types.AssumeRoleResponse> {
  const params = {
    RoleArn: roleArn,
    RoleSessionName: 'MySession'
  };
  return sts.assumeRole(params).promise();
}

请注意,RoleArn 参数应该是您在步骤 1 中创建的 ARN(Amazon 资源名称)。

步骤 5:使用假设角色的凭据

当您成功地获得假设角色的凭证后,您可以使用它们来调用 AWS API:

const assumedRole = await assumeRole('arn:aws:iam::1234567890:role/MyRole');
AWS.config.credentials = new AWS.Credentials(
  assumedRole.Credentials.AccessKeyId,
  assumedRole.Credentials.SecretAccessKey,
  assumedRole.Credentials.SessionToken
);

// 现在您可以使用 AWS SDK 调用执行特定操作的 API
const s3 = new AWS.S3({ region: 'us-east-1' });
const buckets = await s3.listBuckets().promise();
console.log(`您的 S3 存储桶列表:${buckets.Buckets.map((b) => b.Name).join(',')}`);
总结

通过以上步骤,您可以使用 AWS STS 中的假设角色来授予您的应用程序临时访问权限。此示例展示了如何使用 TypeScript 和 AWS SDK for JavaScript 调用 AWS API。