Update CI user 정책(feat.bastion)

hyuckhoon.ko·2021년 1월 5일
0

What I learned in first year

목록 보기
42/146

1. policy 업데이트

아래의 새로운 정책을 기존 CI 유저 정책에 반영한다.

앞에서 bastion EC2 인스턴스를 생성했다.
하지만 해당 서버를 접근하거나 업데이트하는 등의 역할은 부여하지 않았다.

하드웨어만 있다고 생각하면 된다.
따라서, 기존 생성한 CI 유저에
ec2 인스턴스에 관한 역할을 추가로 부여하는 과정이다.

예를 들어, 해당 bastion 인스턴스에서 AWS ECR에 도커 이미지를 푸시할 수 있는 것도 권한 및 역할과 관련이 있는 문제다.

"iam:CreateRole",
"iam:GetInstanceProfile",
"iam:DeletePolicy",
"iam:DetachRolePolicy",
"iam:GetRole",
"iam:AddRoleToInstanceProfile",
"iam:ListInstanceProfilesForRole",
"iam:ListAttachedRolePolicies",
"iam:DeleteRole",
"iam:TagRole",
"iam:PassRole",
"iam:GetPolicyVersion",
"iam:GetPolicy",
"iam:CreatePolicyVersion",
"iam:DeletePolicyVersion",
"iam:CreateInstanceProfile",
"iam:DeleteInstanceProfile",
"iam:ListPolicyVersions",
"iam:AttachRolePolicy",
"iam:CreatePolicy",
"iam:RemoveRoleFromInstanceProfile"

반영 결과

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "TerraformRequiredPermissions",
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ec2:*",
                "rds:DeleteDBSubnetGroup",
                "rds:CreateDBInstance",
                "rds:CreateDBSubnetGroup",
                "rds:DeleteDBInstance",
                "rds:DescribeDBSubnetGroups",
                "rds:DescribeDBInstances",
                "rds:ListTagsForResource",
                "rds:ModifyDBInstance",
                "iam:CreateServiceLinkedRole",
                "rds:AddTagsToResource",
                "iam:CreateRole",
                "iam:GetInstanceProfile",
                "iam:DeletePolicy",
                "iam:DetachRolePolicy",
                "iam:GetRole",
                "iam:AddRoleToInstanceProfile",
                "iam:ListInstanceProfilesForRole",
                "iam:ListAttachedRolePolicies",
                "iam:DeleteRole",
                "iam:TagRole",
                "iam:PassRole",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:CreatePolicyVersion",
                "iam:DeletePolicyVersion",
                "iam:CreateInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:ListPolicyVersions",
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:RemoveRoleFromInstanceProfile"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowListS3StateBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::info-share-tfstate"
        },
        {
            "Sid": "AllowS3StateBucketAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::info-share-tfstate/*"
        },
        {
            "Sid": "LimitEC2Size",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "ForAnyValue:StringNotLike": {
                    "ec2:InstanceType": [
                        "t2.micro"
                    ]
                }
            }
        },
        {
            "Sid": "AllowECRAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:*"
            ],
            "Resource": "arn:aws:ecr:us-east-1:*:repository/recipe-app-api-devops"
        },
        {
            "Sid": "AllowStateLockingAccess",
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem",
                "dynamodb:DeleteItem",
                "dynamodb:GetItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:*:*:table/info-share-tf-state-lock"
            ]
        }
    ]
}

결과






2. SSH 키 발급


1. 명령어 입력

터미널에 아래와 같이 입력하자.
그리고 나온 결과값을 복사한다.

cat ~/.ssh/id_rsa.pub

2. AWS EC2 대시보드 접속






0개의 댓글