翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
如何让 StackQL 通过 AWS 的身份验证
StackQL 使用标准的 AWS 凭据环境变量向 AWS 进行身份验证。在启动 StackQL shell、exec 命令、服务器或 MCP 服务器之前设置这些变量;无需配置文件。
步骤
-
创建或确定一个 IAM 主体(用户或角色),使其具有查询所需的权限。对于只读查询,
ReadOnlyAccess托管策略或范围更窄的同等策略即可满足需要。 -
将凭据导出为环境变量:
export AWS_ACCESS_KEY_ID=YOURACCESSKEYID
export AWS_SECRET_ACCESS_KEY=YOURSECRETACCESSKEY
对于临时凭据(通过 sts assume-role 担任的角色,或会自动设置这些变量的 AWS CloudShell 会话),还需导出会话令牌:
export AWS_SESSION_TOKEN=YOURSESSIONTOKEN
- 拉取 AWS Provider(仅首次使用时需要):
REGISTRY PULL aws;
- 通过查询进行验证:
SELECT instance_id, instance_type
FROM aws.ec2.instances
WHERE region = 'us-east-1';
成功返回结果集即表明身份验证成功。请注意,AWS 查询要求在 WHERE 子句中提供 region 谓词,这是路由参数,而不是凭据设置。
变量的适用范围
这些环境变量在 StackQL 的每种执行模式下都同样适用:
- 交互式 shell:
stackql shell - 批处理:
stackql exec "..." - 服务器模式:
stackql srv(PostgreSQL 线协议) - MCP 服务器:
stackql mcp,或通过 MCP 客户端配置(例如claude_desktop_config.json)的env块
在 CI 系统中,应从平台的机密存储获取这些变量,而不是将其硬编码。元数据操作(SHOW、DESCRIBE、REGISTRY)无需凭据即可运行;只有数据操作(SELECT、INSERT、UPDATE、DELETE、EXEC)需要经过身份验证的会话。
相关概念
- 如何使用 StackQL 查询 AWS EC2 实例:完成身份验证后的首批查询
- 如何使用 StackQL 查询 S3 存储桶:S3 查询模式
- 如何让 StackQL 通过 Azure 的身份验证:Azure 的对应做法
- 如何让 StackQL 通过 Google Cloud 的身份验证:GCP 的对应做法
- 常见 StackQL 错误:包括身份验证失败