 
        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.