如何使用Postman借助临时凭证调用VPC部署的SageMaker端点?
解决Postman调用VPC部署的SageMaker端点返回404的问题
核心原因
VPC模式部署的SageMaker端点默认仅允许同一VPC内的资源,或通过VPC对等连接、VPN、Direct Connect等方式接入VPC的客户端访问。本地运行的Postman不在目标VPC内,直接请求会因无法路由到端点而返回404。
解决方案步骤
1. 确保使用有效的AWS临时凭证
通过SSO获取的是临时凭证,不能直接使用静态密钥,需按以下方式获取:
- 执行AWS CLI命令完成SSO登录:
sso login --profile <你的SSO配置文件> - 获取临时凭证的三个核心字段:
- 访问密钥:
aws configure get aws_access_key_id --profile <你的SSO配置文件> - 密钥:
aws configure get aws_secret_access_key --profile <你的SSO配置文件> - 会话令牌:
aws configure get aws_session_token --profile <你的SSO配置文件>
- 访问密钥:
- 将这三个字段完整填入Postman的AWS认证模块中。
2. 让Postman接入VPC网络
选择以下任一方式让Postman能够访问VPC内的端点:
- 使用AWS CloudShell:CloudShell运行在AWS VPC内,安装Postman CLI后直接在其中调用端点,无需额外网络配置。
- 搭建VPC内代理服务器:在VPC的EC2实例上部署HTTP代理(如Nginx、Squid),配置Postman通过该代理访问端点。注意给EC2实例的安全组添加规则,允许你的本地IP访问代理端口,同时允许EC2访问SageMaker端点的安全组。
- 通过VPN接入VPC:配置AWS Client VPN或企业VPN,将本地机器接入目标VPC,使Postman获得VPC内的网络访问权限。
3. 验证端点权限与配置
- 确认你的SSO角色已被授予
sagemaker:InvokeEndpoint权限,且资源范围包含目标端点的ARN。 - 检查SageMaker端点的安全组规则,允许来自代理EC2、CloudShell所在VPC CIDR或VPN客户端CIDR的443端口访问。
- 通过CLI确认端点状态为
InService:aws sagemaker describe-endpoint --endpoint-name <你的端点名>
内容的提问来源于stack exchange,提问作者Coolboy
相关产品推荐
相关产品推荐

