Host your own email and enhance your privacy
You must sign up for an Amazon Web Services account. You may use an existing account, but I recommend creating a dedicated account for this workload.
After signing up, perform the following steps:
Create an IAM policy called “cicd” with the following permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Vicious",
"Effect": "Allow",
"Action": [
"acm:AddTagsToCertificate",
"acm:DeleteCertificate",
"acm:DescribeCertificate",
"acm:ImportCertificate",
"acm:ListTagsForCertificate",
"acm:RenewCertificate",
"acm:RequestCertificate",
"apigateway:*",
"autoscaling:*",
"backup:*",
"backup-storage:*",
"cloudfront:*",
"cognito-identity:*",
"cognito-idp:*",
"dynamodb:*",
"ec2:*",
"ecr:*",
"elasticfilesystem:*",
"elasticloadbalancing:*",
"iam:*",
"kms:CreateGrant",
"kms:DescribeKey",
"lambda:*",
"route53:ChangeResourceRecordSets",
"route53:ChangeTagsForResource",
"route53:CreateHostedZone",
"route53:DeleteHostedZone",
"route53:GetChange",
"route53:GetDNSSEC",
"route53:GetHostedZone",
"route53:ListHostedZonesByName",
"route53:ListResourceRecordSets",
"route53:ListTagsForResource",
"s3:*",
"s3-object-lambda:*",
"ssm:*",
"sts:GetCallerIdentity",
"logs:CreateLogGroup",
"logs:TagResource",
"logs:PutRetentionPolicy",
"logs:DescribeLogGroups",
"logs:ListTagsForResource"
],
"Resource": "*"
}
]
}
(If you don’t intend to use this repo to configure AWS Backup, then you may omit the backup:*
and backup-storage:*
lines.)
If you have followed the recommendation to create a dedicated account, then the above steps should be the only manual steps required in this account. Everything else should be managed by Terraform.