一、先创建 Access Key
重要:不要给 root user 创建访问密钥。AWS 官方也强烈建议不要创建 root access key,因为 root 拥有整个账号的完整权限。日常使用 AWS CLI 应该给 IAM user 创建 access key。
1. 登录 AWS Console
用你的 root user 登录 AWS。
然后搜索并进入:
IAM
2. 进入 IAM 用户
左侧点击:
Users
选择你之前创建的 IAM user,比如:
admin-user
如果还没有 IAM user,先创建一个 IAM user,并加入有权限的 group,比如 AdminGroup。
3. 创建访问密钥
进入用户详情页后,点:
Security credentials
找到:
Access keys
点击:
Create access key
AWS 官方步骤也是在 IAM user 的 Security credentials 页面下创建 access key。
4. 选择用途
它会问你 access key 用在哪里,选择:
Command Line Interface CLI
然后勾选确认你知道 access key 的风险。
点击:
Create access key
5. 保存两个值
创建完成后,你会看到两个东西:
Access key ID
Secret access key
类似这样:
Access key ID: AKIAxxxxxxxxxxxx
Secret access key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Secret access key 只显示一次。一定要保存好。
不要截图发给别人,不要上传到 GitHub,不要写进代码里。
二、配置 AWS CLI
在 Ubuntu 终端里输入:
aws configure然后它会依次问你四个东西:
AWS Access Key ID [None]:
这里粘贴你的:
Access key ID
然后:
AWS Secret Access Key [None]:
这里粘贴你的:
Secret access key
然后:
Default region name [None]:
你在加拿大中部,可以填:
ca-central-1
然后:
Default output format [None]:
建议填:
json
AWS CLI 的 aws configure 会把 access key 写入本机的 shared credentials file,通常是 ~/.aws/credentials。
完整示例:
aws configure AWSAccessKeyID[None]:AKIAxxxxxxxxxxxxAWSSecretAccessKey[None]:xxxxxxxxxxxxxxxxxxxxxDefaultregion name[None]:ca-central-1Defaultoutput format[None]:json三、验证 AWS CLI 是否配置成功
配置完成后,先不要直接试复杂命令。先执行:
aws sts get-caller-identity
如果成功,会返回类似:
{
“UserId”: “AIDAxxxxxxxxxxxx”,
“Account”: “123456789012”,
“Arn”: “arn:aws:iam::123456789012:user/admin-user”
}
这说明 AWS CLI 已经成功登录到你的 IAM user。
四、再执行列出 IAM 用户
然后你可以执行:
aws iam list-users
如果你的 IAM user 有权限,会返回 IAM 用户列表。
如果报错类似:
AccessDenied
说明你的 IAM user 没有 iam:ListUsers 权限。你需要回到 AWS Console,把这个 IAM user 加入有权限的 group,例如:
AdministratorAccess
或者较小权限:
IAMReadOnlyAccess
AWS 的权限是通过 policy 分配给 user、group 或 role 的。
五、你现在截图里应该怎么改
在 PowerShell 或 CMD 里执行:
aws configure set region ca-central-1
aws configure set output json
然后检查配置:
aws configure list你应该看到类似:
region ca-central-1output json然后再运行:
aws iam list-users