使用AWS CLI执行tag-user命令为IAM用户打标签报错如何解决?
问题根源
你遇到的报错不是AWS CLI版本和文档不同步导致的,是Windows平台的命令行解析器(CMD/PowerShell)的引号、字符串处理规则和类Unix系统不一致导致的:官方文档给出的示例默认适配Linux/macOS的Shell环境,单引号可以正常包裹JSON字符串,但Windows下不会把单引号识别为合法的字符串包裹符,因此会解析报错。
你之前尝试的写法还有两个额外错误:JSON结构中键值对需要用冒号:分隔,不是等号=;单标签的JSON写法可以是对象也可以是对象数组,但结构语法要符合JSON规范。
可用解决方案
推荐优先使用第一种写法,无需处理转义,兼容性最高:
- 方法1:使用短格式键值对写法(全平台通用)
aws iam tag-user --user-name access-Arnav-peg-eng --tags Key=access-project,Value=peg
如果需要同时添加多个标签,用空格分隔不同的键值对组即可:
aws iam tag-user --user-name access-Arnav-peg-eng --tags Key=access-project,Value=peg Key=Department,Value=eng
方法2:Windows环境下正确转义的JSON写法
如果你坚持使用JSON格式,按你使用的命令行工具选择对应写法:- CMD环境:
aws iam tag-user --user-name access-Arnav-peg-eng --tags "{\"Key\": \"access-project\", \"Value\": \"peg\"}"- PowerShell环境:
aws iam tag-user --user-name access-Arnav-peg-eng --tags "{""Key"": ""access-project"", ""Value"": ""peg""}"方法3:从本地文件读取标签配置(多标签场景推荐)
先将标签内容保存为本地JSON文件,比如tags.json,内容如下:[ { "Key": "access-project", "Value": "peg" } ]再执行命令读取文件内容作为参数:
aws iam tag-user --user-name access-Arnav-peg-eng --tags file://tags.json
内容的提问来源于stack exchange,提问作者Adam391
相关产品推荐
相关产品推荐

