You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform AWS Provider无法访问AWS账户(401认证失败)求助

解决Terraform AWS Provider 401认证失败及凭证管理指南

一、排查401认证失败问题

你的报错是AWS无法验证提供的访问凭证,结合你已检查过AMI区域,按以下步骤排查:

1. 确认AWS凭证配置正确

Terraform不会自动读取AWS凭证,必须通过以下方式之一配置:

  • 环境变量:终端中设置(Linux/macOS用export,Windows用set):
    export AWS_ACCESS_KEY_ID="你的访问密钥ID"
    export AWS_SECRET_ACCESS_KEY="你的秘密访问密钥"
    # 使用临时凭证需追加
    export AWS_SESSION_TOKEN="你的会话令牌"
    
  • 本地凭证文件:在~/.aws/credentials(Linux/macOS)或C:\Users\<你的用户名>\.aws\credentials(Windows)中添加:
    [default]
    aws_access_key_id = 你的访问密钥ID
    aws_secret_access_key = 你的秘密访问密钥
    # 临时凭证需追加
    aws_session_token = 你的会话令牌
    
  • Terraform Provider配置:不建议硬编码敏感信息,学习阶段可临时添加(用完记得删除):
    provider "aws" {
      region = "us-east-1" # 你的AMI ami-07ffb2f4d65357b42属于us-east-1区域,必须匹配
      access_key = "你的访问密钥ID"
      secret_key = "你的秘密访问密钥"
      session_token = "你的会话令牌" # 临时凭证需要
    }
    
    resource "aws_instance" "test-EC2" {
        instance_type = "t2.micro"
        ami = "ami-07ffb2f4d65357b42"
    }
    

2. 检查凭证有效性与权限

  • 登录AWS控制台,进入IAM → 用户,找到对应用户的安全凭证页面:
    • 确认访问密钥状态为「活跃」,若为「已禁用」需重新启用或创建新密钥。
    • 确认用户有创建EC2实例的权限:给用户附加AmazonEC2FullAccess策略(学习环境适用),或自定义包含ec2:RunInstances等必要权限的策略。

3. 临时凭证过期检查

如果使用的是临时会话令牌,其最长有效期为12小时,过期后需重新生成。

二、通过AWS控制台创建/销毁凭证

1. 创建长期访问密钥(Access Key + Secret Key)

  1. 登录AWS控制台,进入IAM服务。
  2. 左侧导航栏点击用户 → 添加用户。
  3. 输入用户名(比如terraform-user),勾选「访问密钥 - 编程访问」,点击下一步。
  4. 附加权限策略:学习环境直接选择AmazonEC2FullAccess,点击下一步完成创建。
  5. 保存生成的「访问密钥ID」和「秘密访问密钥」——这是唯一能查看秘密密钥的机会,务必妥善保管。

2. 创建临时会话令牌

  1. 进入IAM → 用户,选择目标用户 → 安全凭证 → 点击「创建临时凭证」。
  2. 设置有效期(15分钟到12小时之间),点击「创建临时凭证」。
  3. 保存生成的访问密钥ID、秘密访问密钥和会话令牌,到期自动失效。

3. 销毁凭证

  • 长期访问密钥:进入IAM → 用户 → 安全凭证,找到目标密钥,先点击「操作 → 禁用」,再点击「删除」。
  • 临时令牌:无需手动销毁,到期自动失效,也可在STS控制台主动撤销(一般不需要)。

内容的提问来源于stack exchange,提问作者Ramsin Khnania

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:01:09