【问题标题】:Error launching source instance: UnauthorizedOperation: You are not authorized to perform this operation启动源实例时出错:UnauthorizedOperation:您无权执行此操作
【发布时间】:2022-05-05 18:42:52
【问题描述】:

我正在尝试使用 Terraform 为 EC2 实例提供午餐,但出现以下错误:

启动源实例时出错:UnauthorizedOperation:您无权执行此操作。

我已将 AdministratorAccess 政策应用于我的 IAM 帐户,因此我想应该不存在 IAM 限制问题。

我还为我的帐户启用了 MFA,但我使用的是 STS 令牌,并且正在接受来自 Amazon 的 API 调用,因此这也不应该是问题。

我使用的 Terraform 代码非常简单:

provider "aws"{
    region="us-east-1"
}
resource "aws_instance" "web" {
  ami           = "ami-00d4e9ff62bc40e03"
  instance_type = "t2.micro"
  tags = {
    Name = "HelloWorld"
  }
}

由于我厌倦了很多事情,请你能帮助我,但我没有设法解决这个问题。 及时感谢!

【问题讨论】:

标签: amazon-web-services terraform terraform-provider-aws


【解决方案1】:

您也遇到了这个错误,我通过在 AWS IAM 控制台中重新创建用户然后访问/密钥来解决这个问题。发生这种情况的原因是我错误地将具有访问密钥和秘密密钥的 tfvars 文件上传到由 AWS 识别的 github 存储库,然后它限制了对该特定 IAM 用户的访问。向 AWS 致敬,以遵循这种微观级别的监控和安全标准。

【讨论】:

  • 它发生在我身上也被撤销并创建新密钥,但它适用于使用 terraform 创建的 eks 集群,但同样失败说“错误:启动源实例时出错:UnauthorizedOperation:您无权执行此操作。编码授权失败消息”。我尝试使用适用于 rds 的相同用户手动创建,但使用 terraform 失败
【解决方案2】:

从 iamadmin 转到您为 terraform 创建的用户,然后检查 Policies 。 我发现直接附加了“AWSCompromisedKeyQuarantineV2”策略。 该政策的描述是:

政策 ARN arn:aws:iam::aws:policy/AWSCompromisedKeyQuarantineV2 描述 拒绝访问 AWS 团队在 IAM 用户的凭证被泄露或公开暴露的情况下应用的某些操作。不要删除此政策。相反,请按照为您创建的支持案例中指定的有关此事件的说明进行操作。

检查 aws 通知中的未解决问题,它会显示风险 IAM 隔离

您的 AWS 账户可能已被盗用!我们已经打开了一个支持案例,其中包含更多详细信息。请访问 AWS 支持中心 https://aws.amazon.com/support 查看我们为您打开的案例并立即采取行动。

【讨论】:

    【解决方案3】:

    您可以在运行模板时尝试启用调试,以便更好地了解缺少哪个权限部分

    TF_LOG=DEBUG terraform apply
    

    【讨论】:

    • 当我启用调试模式时,没有有用的附加信息: : eval: *terraform.EvalApplyPost, err: Error launch source instance: UnauthorizedOperation: You are not authorized to perform this operation .
    【解决方案4】:

    请使用 STS 服务来解码您在响应中获得的授权令牌。它将说明您无权执行的确切操作。

    这只是第一步,您可以从本文档中了解更多信息:

    https://aws.amazon.com/premiumsupport/knowledge-center/ec2-not-auth-launch/

    【讨论】:

      【解决方案5】:

      也许原因是:

      • 这是一个新的 AWS 账户,激活过程尚未完成。
      • 您的 AWS 密钥没有足够的权限来启动 EC2 实例。

      【讨论】:

      • 该账号不是新账号,已经激活。我可以通过 WEB 控制台启动一个新的 EC2 实例,但不能通过 Terraform。 AdministratorAccess 策略应用于该帐户。此内置策略提供对 AWS 服务和资源的完全访问权限,因此可能与某些权限问题相关吗?
      • 我也遇到了这个问题。你设法解决了吗?添加了 admin 和 ec2 权限,但仍然出现此错误
      【解决方案6】:

      对我来说,问题是试图在我组织的服务控制策略禁止的区域中创建资源。用户凭据很好。

      【讨论】:

        【解决方案7】:

        我收到此错误是因为我在我的 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-..."
        }
        

        【讨论】:

          猜你喜欢
          • 2016-11-23
          • 2019-07-22
          • 2018-06-16
          • 1970-01-01
          • 2021-09-30
          • 2021-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多