【发布时间】:2014-08-27 12:34:55
【问题描述】:
通过 API 连接到 AWS CloudFront 时,无论我做什么,都会收到异常:
Credential should be scoped to a valid region
相同的凭据适用于帐户有权处理的任何其他请求,例如 S3。
【问题讨论】:
标签: api amazon-ec2 amazon-cloudfront region
通过 API 连接到 AWS CloudFront 时,无论我做什么,都会收到异常:
Credential should be scoped to a valid region
相同的凭据适用于帐户有权处理的任何其他请求,例如 S3。
【问题讨论】:
标签: api amazon-ec2 amazon-cloudfront region
异常是由使用“us-east-1”以外的任何区域集访问 CloudFront 引起的。由于 CloudFront 基本上是无区域的,因此它要求您仅使用默认区域“us-east-1”与其对话。
http://docs.aws.amazon.com/general/latest/gr/signature-v4-troubleshooting.html
您可以通过使用在其他地方使用的相同凭据来解决此问题,但使用明确设置的区域来实例化 CloudFront 客户端:
AmazonCloudFrontClient client = new AmazonCloudFrontClient(Amazon.RegionEndpoint.USEast1);
这会引出后续问题:为什么 API 不只是为您执行此操作?
【讨论】:
此答案适用于试图解决一般Credential should be scoped to a valid region 错误的任何人
如果您向与凭证范围中指定的区域不同的区域提交请求,您将收到来自多个区域可用的亚马逊产品的相同类型的无效区域响应。
凭据还必须为您的请求中的服务和操作指定正确的区域。
来自https://docs.amazonaws.cn/en_us/general/latest/gr/signature-v4-troubleshooting.html
简单来说,您设置的区域应该与您查询中提到的区域匹配(sdk api调用,rest api调用或任何其他)
如果指定相同区域后仍然出现相同的错误,可能是因为查询格式需要端点中的区域名称,如https://elasticloadbalancing.eu-west-1.amazonaws.com
【讨论】: