返回

AWS 凭证验证失败:无法验证访问凭证?一文解决 5 大常见原因

java

AWS凭证验证失败:“AWS无法验证提供的访问凭证”

在使用AWS SDK与AWS服务交互时,您可能会遇到错误消息“AWS无法验证提供的访问凭证”。此错误可能令人沮丧,但可以通过识别和解决根本原因来轻松解决。

根本原因

出现此错误的原因有很多,包括:

  • 不正确的凭证: 确保您使用的Access Key和Secret Key正确无误。
  • 权限不足: 创建安全组所需的权限可能未授予给IAM用户或角色。
  • 网络连接问题: 您的计算机可能无法连接到AWS服务。
  • 其他问题: 防火墙、代理或其他网络配置问题也可能导致连接失败。

解决方法

1. 检查凭证

  • 验证您的Access Key和Secret Key是否正确。
  • 确保这些凭证具有创建安全组所需的权限。

2. 授予权限

  • 如果凭证正确,请检查IAM用户或角色是否具有以下权限:
    • ec2:CreateSecurityGroup
    • ec2:AuthorizeSecurityGroupIngress

3. 检查网络连接

  • 确保您的计算机可以连接到AWS服务。
  • 尝试禁用防火墙或代理,看看问题是否得到解决。

4. 其他检查

  • 检查是否存在AWS服务中断或维护。
  • 尝试使用不同的区域创建安全组。
  • 联系AWS支持以寻求进一步的帮助。

示例代码修复

在提供的示例代码中,创建安全组时可能还有以下问题:

  • 缺少凭证: 创建安全组时,需要将凭证设置为createSecurityGroupRequest

修改后的示例代码:

CreateSecurityGroupRequest createSecurityGroupRequest =  new CreateSecurityGroupRequest()
        .withGroupName(groupName)
        .withDescription("Created from AWS SDK Security Group")
        .setRequestCredentials(credentials);
  • 附加安全组权限: 在授予安全组所有者权限时,需要将groupName设置为AuthorizeSecurityGroupIngressRequest

修改后的示例代码:

AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest()
        .withGroupName(groupName)
        .withIpPermissions(ips);

结论

通过遵循这些步骤,您可以解决错误“AWS无法验证提供的访问凭证”,并成功创建安全组。请注意,具体原因和解决方法可能因您的具体情况而异。

常见问题解答

1. 我已经检查了凭证,它们是正确的,但仍然收到错误消息怎么办?

  • 检查IAM用户或角色是否具有必要的权限。
  • 检查网络连接是否稳定。
  • 联系AWS支持以寻求进一步的帮助。

2. 我已经授予了必要的权限,但仍然收到错误消息怎么办?

  • 确保IAM用户或角色具有正确的权限策略。
  • 尝试使用不同的AWS区域。
  • 联系AWS支持以寻求进一步的帮助。

3. 我检查了网络连接,但仍然收到错误消息怎么办?

  • 尝试禁用防火墙或代理。
  • 确保您的计算机可以使用出站端口443。
  • 联系AWS支持以寻求进一步的帮助。

4. 我已经尝试了所有这些步骤,但仍然收到错误消息怎么办?

  • 联系AWS支持并提供详细的错误消息。
  • 检查AWS服务健康仪表盘是否有任何已知中断。

5. 如何避免将来出现此错误?

  • 妥善管理AWS凭证。
  • 确保IAM用户或角色具有必要的权限。
  • 定期检查网络连接。
  • 监视AWS服务健康仪表盘以了解任何中断。