AWS GovCloud 如何识别给定AWS账号ID是否属于GovCloud账号
校验AWS账号是否为GovCloud账号的实现方法
现有AWS官方API可直接实现该校验,结合你已持有目标账号对应访问密钥的前提,可选用以下两种方案实现:
- 方案1:通过STS接口校验分区属性
AWS GovCloud账号归属独立的aws-us-gov资源分区,和普通商业账号的aws分区完全隔离。你可以调用STS服务的GetCallerIdentity接口,指定请求区域为任意GovCloud官方区域(例如us-gov-west-1)即可判断:
# AWS CLI 命令示例 aws sts get-caller-identity --region us-gov-west-1
如果请求正常返回包含目标账号ID的响应,说明该账号为GovCloud账号;如果返回InvalidClientTokenId错误,说明为普通商业分区账号。
注:该方案无需额外权限,只要持有合法的AKSK即可执行,普适性最高
- 方案2:通过Organizations接口查询账号属性
如果你的访问密钥具备AWS组织的读取权限,可以调用DescribeAccount接口,通过返回结果中的ARN前缀判断:
# AWS CLI 命令示例,将<目标账号ID>替换为实际待校验的账号ID aws organizations describe-account --account-id <目标账号ID>
返回结果的账号ARN前缀如果为arn:aws-us-gov:organizations::即为GovCloud账号,前缀为arn:aws:organizations::即为普通商业账号。
注意:使用方案2时需要确保待校验账号属于你当前访问密钥所属的AWS组织,否则会返回查询失败的报错。
内容的提问来源于stack exchange,提问作者rmp
相关产品推荐
相关产品推荐

