新 IAM 管理员用户看到 "You are not authorized to perform this operation"
New IAM admin user sees "You are not authorized to perform this operation"
我正尝试在 OSX 开始使用 AWS CLI。我通过 pip 安装了 aws
。我在 IAM 中创建了一个新用户并附加了预构建的 AdministratorAccess - AWS Managed policy
策略。接下来我复制了访问密钥 ID 和生成的秘密访问密钥。
我创建的用户不在任何群组中。他们的政策是这样的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
接下来,我从命令行运行 aws configure
,输入我复制的访问密钥和密钥,加上区域代码eu-west-1
(这似乎不太可能是相关的,因为 IAM 用户是全球性的),以及 text
.
的输出格式
然后我尝试了运行一个简单的测试命令来建立一个新组:
$ aws ec2 create-security-group --group-name my-sg --description "My security group" --debug
但是,此操作失败并出现以下错误:
A client error (UnauthorizedOperation) occurred when calling the
CreateSecurityGroup operation: You are not authorized to perform this
operation.
其他命令以同样的方式失败。
我唯一的理论是它是键中的复制和粘贴错误,但我已经尝试执行上述整个过程两次,但两次都以同样的方式失败。我究竟做错了什么?有什么方法可以调试流程的哪一部分失败?
确保您没有在 VPC 中创建安全组,如果是这种情况,您需要将默认 VPC ID 作为参数传递。
也可以在不同地区试试这个:
aws configure set region <regions>
aws ec2 describe-security-groups
注意:AWS 已开始在大多数地区提供默认 VPC。
希望这有助于解决您的问题。
您的 AWS CLI 正在从其他地方获取凭证。参见 Configuration Settings and Precedence
确保它没有从环境变量或其他位置获取凭据。
AWS CLI 按以下顺序查找凭证和配置设置:
- 命令行选项 – 可以将区域、输出格式和配置文件指定为命令选项以覆盖默认设置。
- 环境变量 – AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 等
- AWS 凭证文件 – 位于 Linux、OS X 或 Unix 上的 ~/.aws/credentials 或 C:\Users\USERNAME .aws\credentials 在 Windows 上。除默认配置文件外,此文件还可以包含多个命名配置文件。
- CLI 配置文件 – 通常位于 Linux、OS X 或 Unix 上的 ~/.aws/config 或 C:\Users\USERNAME .aws\config 在 Windows 上。此文件可以包含默认配置文件、命名配置文件和每个配置文件的 CLI 特定配置参数。
- 实例配置文件凭据 – 这些凭据可用于具有分配的实例角色的 EC2 实例,并通过 Amazon EC2 元数据服务提供。
在我的例子中,这是由于没有将正确的策略附加到我进行身份验证的 IAM 用户造成的。
在 IAM 管理控制台中将 AmazonEC2FullAccess
策略附加到用户,命令应该会起作用。
我正尝试在 OSX 开始使用 AWS CLI。我通过 pip 安装了 aws
。我在 IAM 中创建了一个新用户并附加了预构建的 AdministratorAccess - AWS Managed policy
策略。接下来我复制了访问密钥 ID 和生成的秘密访问密钥。
我创建的用户不在任何群组中。他们的政策是这样的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
接下来,我从命令行运行 aws configure
,输入我复制的访问密钥和密钥,加上区域代码eu-west-1
(这似乎不太可能是相关的,因为 IAM 用户是全球性的),以及 text
.
然后我尝试了运行一个简单的测试命令来建立一个新组:
$ aws ec2 create-security-group --group-name my-sg --description "My security group" --debug
但是,此操作失败并出现以下错误:
A client error (UnauthorizedOperation) occurred when calling the CreateSecurityGroup operation: You are not authorized to perform this operation.
其他命令以同样的方式失败。
我唯一的理论是它是键中的复制和粘贴错误,但我已经尝试执行上述整个过程两次,但两次都以同样的方式失败。我究竟做错了什么?有什么方法可以调试流程的哪一部分失败?
确保您没有在 VPC 中创建安全组,如果是这种情况,您需要将默认 VPC ID 作为参数传递。
也可以在不同地区试试这个:
aws configure set region <regions>
aws ec2 describe-security-groups
注意:AWS 已开始在大多数地区提供默认 VPC。
希望这有助于解决您的问题。
您的 AWS CLI 正在从其他地方获取凭证。参见 Configuration Settings and Precedence
确保它没有从环境变量或其他位置获取凭据。 AWS CLI 按以下顺序查找凭证和配置设置:
- 命令行选项 – 可以将区域、输出格式和配置文件指定为命令选项以覆盖默认设置。
- 环境变量 – AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 等
- AWS 凭证文件 – 位于 Linux、OS X 或 Unix 上的 ~/.aws/credentials 或 C:\Users\USERNAME .aws\credentials 在 Windows 上。除默认配置文件外,此文件还可以包含多个命名配置文件。
- CLI 配置文件 – 通常位于 Linux、OS X 或 Unix 上的 ~/.aws/config 或 C:\Users\USERNAME .aws\config 在 Windows 上。此文件可以包含默认配置文件、命名配置文件和每个配置文件的 CLI 特定配置参数。
- 实例配置文件凭据 – 这些凭据可用于具有分配的实例角色的 EC2 实例,并通过 Amazon EC2 元数据服务提供。
在我的例子中,这是由于没有将正确的策略附加到我进行身份验证的 IAM 用户造成的。
在 IAM 管理控制台中将 AmazonEC2FullAccess
策略附加到用户,命令应该会起作用。