cosa imageupload-aws
cosa imageupload-aws uploads a disk image to AWS as an AMI. It looks for AWS credentials in the standard places; Common methods are AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables, and using AWS_PROFILE. For more information, consult the documentation for the aws CLI tool, in particular aws configure help.
Uploading AMIs requires IAM permissions.
Follow the instructions to create the vmimport role and attach it to the bot account + bucket.
The full list of permisions required for your IAM policy should look similar to this:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::<name-of-s3-bucket>",
"arn:aws:s3:::<name-of-s3-bucket>/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*",
"ec2:CancelConversionTask",
"ec2:CancelExportTask",
"ec2:CreateImage",
"ec2:CreateInstanceExportTask",
"ec2:CreateTags",
"ec2:DescribeConversionTasks",
"ec2:DescribeExportTasks",
"ec2:DescribeExportImageTasks",
"ec2:DescribeImages",
"ec2:DescribeInstanceStatus",
"ec2:DescribeInstances",
"ec2:DescribeSnapshots",
"ec2:DescribeTags",
"ec2:ExportImage",
"ec2:ImportInstance",
"ec2:ImportVolume",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:TerminateInstances",
"ec2:ImportImage",
"ec2:ImportSnapshot",
"ec2:DescribeImportImageTasks",
"ec2:DescribeImportSnapshotTasks",
"ec2:CancelImportTask"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CopyImage",
"ec2:CopySnapshot",
"ec2:CreateTags",
"ec2:Describe*",
"ec2:ImportSnapshot",
"ec2:ModifyImageAttribute",
"ec2:ModifySnapshotAttribute",
"ec2:RegisterImage"
],
"Resource": "*"
}
]
}
Before uploading, build the AWS disk image with cosa osbuild aws.
This command is a wrapper around the ore subcommand of mantle; there is an ore aws initialize subcommand which may be useful.