mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-06-08 23:56:37 +02:00
104 lines
3.1 KiB
Markdown
104 lines
3.1 KiB
Markdown
|
|
1. Create new policy `saas-starter-kit-deploy` with the following permissions.
|
|
```json
|
|
{
|
|
"Version": "2012-10-17",
|
|
"Statement": [
|
|
{
|
|
"Sid": "ServiceDeployPermissions",
|
|
"Effect": "Allow",
|
|
"Action": [
|
|
"cloudwatchlogs:DescribeLogGroups",
|
|
"cloudwatchlogs:CreateLogGroup",
|
|
"ec2:DescribeSubnets",
|
|
"ec2:DescribeSubnets",
|
|
"ec2:DescribeSecurityGroups",
|
|
"ec2:CreateSecurityGroup",
|
|
"ec2:AuthorizeSecurityGroupIngress",
|
|
"elasticache:DescribeCacheClusters",
|
|
"elasticache:CreateCacheCluster",
|
|
"elasticache:DescribeCacheParameterGroups",
|
|
"elasticache:CreateCacheParameterGroup",
|
|
"elasticache:ModifyCacheCluster",
|
|
"elasticache:ModifyCacheParameterGroup",
|
|
"elasticloadbalancing:DescribeLoadBalancers",
|
|
"elasticloadbalancing:CreateLoadBalancer",
|
|
"elasticloadbalancing:DescribeTargetGroups",
|
|
"elasticloadbalancing:CreateTargetGroup",
|
|
"elasticloadbalancing:DescribeListeners",
|
|
"elasticloadbalancing:ModifyTargetGroupAttributes",
|
|
"ecs:CreateCluster",
|
|
"ecs:CreateService",
|
|
"ecs:DescribeClusters",
|
|
"ecs:DescribeServices",
|
|
"ecs:UpdateService",
|
|
"ecs:RegisterTaskDefinition",
|
|
"ecs:ListTaskDefinitions",
|
|
"ecr:BatchCheckLayerAvailability",
|
|
"ecr:BatchDeleteImage",
|
|
"ecr:GetAuthorizationToken",
|
|
"ecr:DescribeImages",
|
|
"ecr:DescribeRepositories",
|
|
"ecs:DescribeTasks",
|
|
"ecr:CreateRepository",
|
|
"ecr:ListImages",
|
|
"ecs:ListTasks",
|
|
"ecr:PutImage",
|
|
"ecr:InitiateLayerUpload",
|
|
"ecr:UploadLayerPart",
|
|
"ecr:CompleteLayerUpload",
|
|
"logs:DescribeLogGroups",
|
|
"logs:CreateLogGroup",
|
|
"lambda:ListFunctions",
|
|
"lambda:CreateFunction",
|
|
"lambda:UpdateFunctionCode",
|
|
"lambda:UpdateFunctionConfiguration",
|
|
"iam:GetRole",
|
|
"iam:PassRole",
|
|
"iam:CreateRole",
|
|
"iam:CreateServiceLinkedRole",
|
|
"iam:CreatePolicy",
|
|
"iam:PutRolePolicy",
|
|
"iam:TagRole",
|
|
"iam:AttachRolePolicy",
|
|
"iam:ListPolicies",
|
|
"iam:GetPolicyVersion",
|
|
"iam:CreatePolicyVersion",
|
|
"logs:DescribeLogStreams",
|
|
"logs:CreateExportTask",
|
|
"logs:DescribeExportTasks",
|
|
"s3:CreateBucket",
|
|
"s3:DeleteObject",
|
|
"s3:DeleteObjectVersion",
|
|
"s3:GetBucketPublicAccessBlock",
|
|
"s3:GetBucketAcl",
|
|
"s3:HeadBucket",
|
|
"s3:ListObjects",
|
|
"s3:ListBucket",
|
|
"s3:GetObject",
|
|
"s3:PutLifecycleConfiguration",
|
|
"s3:PutBucketCORS",
|
|
"s3:PutBucketPolicy",
|
|
"s3:PutBucketPublicAccessBlock",
|
|
"route53:CreateHostedZone",
|
|
"route53:ListHostedZones",
|
|
"secretsmanager:ListSecrets",
|
|
"secretsmanager:GetSecretValue"
|
|
],
|
|
"Resource": "*"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
2. Create new user `saas-starter-kit-deploy` with _Programmatic Access_ and _Attach existing policies directly_ with the policy created from step 1 `saas-starter-kit-deploy`
|
|
|
|
3. Try running the deploy
|
|
```bash
|
|
go run main.go deploy -service=web-api -env=dev
|
|
```
|
|
|
|
|
|
|
|
|
|
|