Packer relies on these environment variables to access AWS.
{
"description": "...",
"variables": {
"source_ami": "{{env `SOURCE_AMI`}}",
"enhanced_networking_type": "{{env `ENHANCED_NETWORKING_TYPE`}}",
"region": "us-east-1",
"project_name": "project1",
"os_name": "centos",
"os_version": "7"
},
"provisioners": [
{
"destination": "/tmp/packer",
"source": "./files",
"type": "file"
},
{
"type": "shell",
"execute_command": "echo 'packer' | sudo -S sh -c '{{ .Vars }} {{ .Path }}'",
"scripts": [
"scripts/0-prep.sh",
"scripts/10-bootstrap.sh",
"scripts/20-......sh",
"scripts/40-cleanup.sh"
]
}
],
"builders": [
{
"type": "amazon-ebs",
"ami_name": "{{user `os_name`}}-{{user `os_version`}}-{{user `project_name` }}-{{user `enhanced_networking_type`}}-{{isotime \"2006-01-02-030405\" | clean_ami_name}}",
"ami_description": "{{user `os_name`}} {{user `project_name`}} {{user `enhanced_networking_type`}} {{user `os_version`}} {{user `build_stage`}} image built on {{isotime \"2006-01-02\"}}",
"enhanced_networking": true,
"instance_type": "m4.2xlarge",
"region": "{{user `region`}}",
"security_group_id": "....",
"subnet_id": "...",
"ssh_username": "centos",
"source_ami": "{{ user `source_ami` }}",
"vpc_id": "...",
"iam_instance_profile": "...",
"launch_block_device_mappings": [
{
"device_name": "/dev/xvda",
"volume_size": 300,
"volume_type": "gp2",
"delete_on_termination": true
}
],
"run_tags": {
"created_by": "packer",
"environment": "packer_dev"
},
"tags": {
"Name": "{{user `os_name`}}-{{user `os_version`}}-{{user `project_name` }}-{{user `enhanced_networking_type`}}-{{isotime \"2006-01-02-030405\" | clean_ami_name}}",
"build_date": "{{isotime \"2006-01-02\"}}",
"os": "{{user `os_name`}}",
"source_ami": "{{user `source_ami`}}",
"version": "{{user `os_version`}}",
"description": "{{user `description`}}"
}
}
]
}
I couldn't find any documentation on using aws assume role profile. I'm running packer from a container. I'll follow Richard's suggestions and keep you posted.