首页 > 解决方案 > 在使用任何 AWS api 在 Packer AMI 上运行 Powershell Provisionner 时,awsAccessKeyID 值为 null 错误

问题描述

尝试从 Packer 提供的 AMI 访问 S3 或 SSM 时,我收到错误“awsAccessKey value is null”。我正在使用内联 Powershell 配置程序。内联代码调用我尝试从 S3 下载或访问 SSM 的 ps1 文件。EC2 上的 IAM 角色具有正确的权限。

    {
      "type"              : "Powershell",
      "inline"           :[
         "c:\\temp\\runPs.ps1"
      ]
    }

runPs.ps1: $value = (Get-SSMParameterValue -Name $SSMpath).Parameters[0].Value;

尝试运行运行 S3 下载到 AMI 实例的 Shell 配置程序并收到此错误:致命错误:无法找到凭据

    {
      "type"              : "windows-shell",
      "inline"           :[
         "aws s3 cp s3://bucket/folder/file.txt C:/Temp/file.txt"
      ]
    }

我假设 PS 将承担构建器中指定的 EC2 本身的 IAM 角色。

--- 更多测试

我向构建器添加了一个“assume_role”参数,如下所示:“assume_role”:{“role_arn”:“arn:aws:iam::accountid:role/{{user aws_iam_instance_profile}}”}。

我仍然收到同样的错误:System.InvalidOperationException: Value cannot be null。参数名称:awsAccessKeyId、System.ArgumentNullException:值不能为空。——</p>

标签: windowsamazon-ec2packer

解决方案


推荐阅读