我在尝试从 Packer 提供的 AMI 访问 S3 或 SSM 时收到错误“awsAccessKey value is null”。我正在使用内联 Powershell 配置器。内联代码调用了一个 ps1 文件,我尝试在其中从 S3 下载或访问 SSM。 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:值不能为空。参数名称:awsAccessKeyId,System.ArgumentNullException:值不能为空。 ——