brunch

You can make anything
by writing

- C.S.Lewis -

by Master Seo Sep 02. 2020

450. role필요 서비스




<> role 등 추가 작업  필요 서비스

AWS 서비스중   다른 서비스에 접근해야 하는 서비스는 role이 필요하다.

role = 역할


AWS에 접속해서 role부분을 보면 기본으로 제공하는 롤들이 있다.

해당 부분은 참조하면 어떤 서비스가 왜 롤이 필요한지 알수 있다.




<1> vpc flow log  

cloudwatch log 그룹에 저장해야 하므로 쓸수 있는 role 필요


1

cloudwatch log 그룹 생성 필요


                "logs:CreateLogGroup",

                "logs:CreateLogStream",

                "logs:DescribeLogGroups",

                "logs:DescribeLogStreams",

                "logs:PutLogEvents"




<2>

Elasticsearch

service linked role 필요 - 너에게 권한을 줄께. 니가 알아서 만들어서 처리해.

iam > AWSServiceRoleforAmazoneElasticsearchService  기본 제공 , 일반 계정시 필요.




<3>

람다 lambda

람다는 이벤트를 받아, 함수처리를 해서 결과를  다른 서비스에 전달한다. 그래서 role은  필수이다.

passrole 필요



<4>

cloudwatch agent

role을 만들어 EC2에 적용후 사용




<5>

opsworks

EC2등 다른 AWS 서비스에 접근해야 한다. role 필수

접근해 어플리케이션 설치가 필요하므로 role이 있어야 한다.



<6>

kinesis firehose

role 필요하다.

s3버킷에 저장하는등 다른 서비스에 접근해야 해서 role 필요하다.

kinesis data firehose  -------> S3

키네시스에  줄께 니가 해라. 키네시스가 해야함. Assume롤도 필요하다.



<7>

aws batch

2개의 role이 필요하다.  

1

배치 서비스를 위한 role 필요

2

EC2 인스턴스를 생성해야 하므로 role이 필요


AWSBatchSericeRole이 자동으로 들어간다.

Pass role이 필요하다.






<8>


1

ecs  클러스터 만들때  ECS 인스턴스를  만들게 되어 인스턴스 롤이 필요하다.


1)

role

ecsInstanceRole     =  seo-containerinstance-role


role

ec2

ecsInstanceRole  

EC2InstanceRole


2)

policy = 정책


AmazonEC2ContainerServiceforEC2Role

{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Effect": "Allow",

            "Action": [

                "ec2:DescribeTags",

                "ecs:CreateCluster",

                "ecs:DeregisterContainerInstance",

                "ecs:DiscoverPollEndpoint",

                "ecs:Poll",

                "ecs:RegisterContainerInstance",

                "ecs:StartTelemetrySession",

                "ecs:UpdateContainerInstancesState",

                "ecs:Submit*",

                "ecr:GetAuthorizationToken",

                "ecr:BatchCheckLayerAvailability",

                "ecr:GetDownloadUrlForLayer",

                "ecr:BatchGetImage",

                "logs:CreateLogStream",

                "logs:PutLogEvents"

            ],

            "Resource": "*"

        }

    ]

}



2.

ECS 클러스터 생성시 계정 자체에 권한도 필요하다.  ( 일반 계정 일때 그룹에 권한 할당한다)

cloudformation policy도 필요. (ECS클러스터 생성시 cloudformation 사용됨)

EC2 autoscaling  policy도 필요  (EC2 기반 ECS자동 확장으로 필요)

컨테이너 생성후  다른 시스템에 접속해야 하므로 role 필요하다. = passrole 필요

service-Linked role 필요


1) ecs - 읽기, 쓰기 / 삭제는 제외

2) IAM 6개 - AttachRolePolicy  , AddRoleToInstanceProfile  ,CreateInstanceProfile  ,CreateRole  ,CreateServiceLinkedRole  ,PassRole 

3) EC2 2개 - AuthorizeSecurityGroupIngress  , CreateSecurityGroup   (보안 그룹 생성)

4) EC2 Auto scaling - 3개 CreateAutoScalingGroup , CreateLaunchConfiguration  , UpdateAutoScalingGroup 

5) Cloudformation 읽기, 쓰기 / 삭제는 제외



https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/using-service-linked-roles.html




ecs fargate


1

ECS  클러스터를 만들고

새 작업 정의할때 role이 필요하다.


role

서비스 ecstask

seo-ecstask-role

작업 역할은 공란으로 놔둔다.  

인증된 AWS 서비스에 API 요청을 할 때 작업이 사용할 수 있는 IAM 역할 옵션입니다


정책

AmazonECSTaskExecutionRolePolicy




2

새작업 정의시 필요한 role 은 ?

ecsTaskExecutionRole 

작업 실행에 필요한  IAM 역할  seo-ecstask-role


정책

AmazonECSTaskExecutionRolePolicy

{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Effect": "Allow",

            "Action": [

                "ecr:GetAuthorizationToken",

                "ecr:BatchCheckLayerAvailability",

                "ecr:GetDownloadUrlForLayer",

                "ecr:BatchGetImage",

                "logs:CreateLogStream",

                "logs:PutLogEvents"

            ],

            "Resource": "*"

        }

    ]

}


https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html


3

컨테이너 생성후  다른 시스템에 접속해야 하므로 role에 권한 추가가 필요하다.

batch,s3,ecs-fatgate,kms, cloudwatch log policy필요




<9>

ecr


1

EC2기반의 ECS를 만드는 경우 EC2 권한 필요

ECS권한은 당연 필요

ECR권한도 당연 필요

Cloudwatch log에 저장하므로 로그 필요.


ecr사용 권한은 다음과 같다.


EC2InstanceRole  


role 필요

{

    "Version": "2012-10-17",

    "Statement": [

        {

            "Effect": "Allow",

            "Action": [

                "ec2:DescribeTags",

                "ecs:CreateCluster",

                "ecs:DeregisterContainerInstance",

                "ecs:DiscoverPollEndpoint",

                "ecs:Poll",

                "ecs:RegisterContainerInstance",

                "ecs:StartTelemetrySession",

                "ecs:UpdateContainerInstancesState",

                "ecs:Submit*",

                "ecr:GetAuthorizationToken",

                "ecr:BatchCheckLayerAvailability",

                "ecr:GetDownloadUrlForLayer",

                "ecr:BatchGetImage",

                "logs:CreateLogStream",

                "logs:PutLogEvents"

            ],

            "Resource": "*"

        }

    ]

}




<10>

elasticache  redis

CreateServiceLinkedRole 필요 , 내가 알아서 만들께

서브넷 그룹 2개가 필요하다.



<11>

mysql

mysql 클라이언트 설치해서 접속 확인해야 한다.




<12>

efs

NFS  클라이언트 유틸 설치가 필요하다.

아마존 리눅스는 NFS 설치가 기본으로 되어 있다.



<13>

ebs

사용을 위해 가용 영역이 같아야 한다.  

EBS 이미지를 다른쪽에서 사용하려면 us-west-2a 등으로 영역이 같아야 한다.




<14>

aurora

iam:PassRole

db클러스터 파라미터 그룹 생성 필요

DB파마미터 그룹 생성 필요



<15>

elb

alb

elb는 퍼블릭 존에 구축해야 한다.

createservicelinkedrole 추가 필요, 내가 알아서 만들께




<16>

cloudwatch event

이번트 발생후 다른 시스템으로 접속해서 전달해야 하므로 role 필요하다.

pass role




<17>

route53

readonly 필요



<18>

rds

iam creare role필요






<20>

iot core

passrole 필요








<> role 불필요


<1>

AWS Service Catalog


<2>

KMS

S3버킷 필요

CloudTrail log를 S3에 담는다.

S3에 이미지를 올려 KMS암호화 한다.



<3>

cloudformation


<4>

s3


<5>

cloudfront


<6>

dynamodb


<7>

apigateway


<8>

iam


<9>

cloudwatch


<10>

waf


<11>

쿼리편집기

Redshift


<12>

acm

무료 인증


<13>

ec2

선택적으로 role을 만들어 cli사용자가 권한 없이 사용하도록 가능


<14>

autoscaling


<15>

ssm system manager



참고1.

assume role, passrole, Service-Linked Roles  https://brunch.co.kr/@topasvga/1201


참고2.

passrole  https://brunch.co.kr/@topasvga/836



감사합니다.







매거진의 이전글 449. A계정의 서버를 B계정으로 이동해 구축하기

매거진 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari