我正在尝试使用 Terraform 启动 EC2 实例,但出现以下错误:
启动源实例时出错:UnauthorizedOperation:您无权执行此操作。
我已经将 AdministratorAccess 策略应用到我的 IAM 帐户,所以我想应该不存在 IAM 限制问题。
我还为我的帐户启用了 MFA,但我使用的是 STS 令牌,并且正在从亚马逊接受 API 调用,因此这也不应该是问题所在。
我正在使用的 Terraform 代码非常简单:
provider "aws"{
region="us-east-1"
}
resource "aws_instance" "web" {
ami = "ami-00d4e9ff62bc40e03"
instance_type = "t2.micro"
tags = {
Name = "HelloWorld"
}
}
请你帮助我,因为我很累,但我没有设法解决问题。 提前致谢!
从 iamadmin 转到您为 terraform 创建的用户,然后检查 Policies 。 我发现直接附加了“AWSCompromisedKeyQuarantineV2”策略。 该政策的描述是:
政策 ARN arn:aws:iam::aws:policy/AWSCompromisedKeyQuarantineV2 描述 拒绝访问 AWS 团队在 IAM 用户的凭证被泄露或公开暴露的情况下应用的某些操作。不要删除此策略。相反,请按照为您创建的有关此事件的支持案例中指定的说明进行操作。
在 aws 通知中查看未解决的问题,它将向您显示风险 IAM 隔离区
您的 AWS 账户可能已被盗用!我们已经打开了一个包含更多详细信息的支持案例。请访问 AWS 支持中心 https://aws.amazon.com/support 查看我们为您打开的案例并立即采取行动。
你也遇到了这个错误,我通过在 AWS IAM 控制台中重新创建用户然后访问/密钥来解决同样的问题。发生这种情况的原因是我错误地将具有访问密钥和秘密密钥的 tfvars 文件上传到我的 github 存储库,该存储库由 AWS 识别,然后它限制了对该特定 IAM 用户的访问。对 AWS 的这种微观监控和安全标准表示敬意。
您可以尝试在运行模板时启用调试,这样您就可以更好地了解缺少哪些权限。
要在 Windows 中启用日志记录:
SET TF_LOG=DEBUG
在 Mac 或其他 Linux 中:
export TF_LOG=DEBUG
然后运行您的 Terraform 命令以查看详细的日志,例如:
terraform apply
请到您的 AWS 控制台查看您是否对该用户设置了权限边界。如果是,您可以尝试将它们全部删除。
请使用 STS 服务解码您通过响应获得的授权令牌。它将说明您无权执行的确切操作。
例如,假设你有这个错误:
Error launching source instance: UnauthorizedOperation: You are not authorized to perform this operation. Encoded authorization failure message: ajF9SwmLaGcBxg...
要解码消息,请运行:
aws sts decode-authorization-message --encoded-message ajF9SwmLaGcBxg...
有关更多信息:https://aws.amazon.com/premiumsupport/knowledge-center/ec2-not-auth-launch/
可能是因为:
对我来说,问题是试图在我组织的服务控制策略禁止的区域中创建资源。用户凭据很好。
我收到此错误是因为我在我的 AWS 配置文件中访问了错误的配置文件。
[default]
aws_access_key_id = AKIA........
aws_secret_access_key = JFV............
[org_1]
aws_access_key_id = AKIA............
aws_secret_access_key = EVg.................
发生这种情况是因为我尝试使用 default 配置文件中的凭据创建资源,而不必创建 EC2 实例。
然而,这通过更改配置以指向我打算使用的配置文件org_1解决了
因此,如果您的 AWS 配置文件包含多个配置文件,请在您的 terraform 文件中引用正确的配置文件。例如;
provider "aws" {
profile = "org_1"
region = "us-west-..."
}
更正您的 IAM 角色
1个管理员权限
2 AdministratorAccess-放大
如果您选择第二个 IAM 角色,则会出现该错误,因此请更改为第一个 IAM 角色
我遇到了这个问题。我通过编辑环境变量在我的 Windows 机器中手动设置我的 aws 访问密钥和密钥。不确定为什么在使用密钥和所有设置“aws configure”之后,它没有更新机器中的 env 变量。我拥有的 IAM 用户具有 AdministratorAccess。 HTH.
如果您已将 terraform 文件上传到某处,则必须在 IAM 中重新创建用户,这对我来说很有效
可以查看IAM用户权限。如果附加了此政策,您可以直接将其删除。
AWSCompromisedKeyQuarantineV2