이두잉의 AWS 세상

AWS 계정 및 Resource 관리 방법

2016.04.13 20:08 - leedoing leedoing

안녕하세요. 

오늘은 AWS Resource들을 어떤 식으로 관리할 수 있는지 알아보도록 하겠습니다.


기본적으로 Tag를 통해서 Resource를 관리할 수 있습니다.

한 계정 내에서 여러 서비스를 사용하는 것은 권장하지 않습니다. 비용 관리가 어려워집니다.

참고로 AWS 다른 계정 간 통신이라도 동일한 계정 정책의 비용을 따릅니다. 예를 들어 A계정 S3를 사용하고 B계정에서 CloudFront를 사용하더라도 트래픽 비용은 발생되지 않습니다. 


그래도 한 계정 내에서 여러 서비스를 사용하겠다면, 두 가지 방법을 통해서 Resource 및 계정을 관리할 수 있습니다.


첫 번째, 각 서비스마다 Resource Groups을 통해서 관리합니다.

두 번째, 각 서비스의 권한은 Tag를 기반으로 Policy를 생성하고, 각 운영자에 해당 권한을 부여합니다.


첫 번째, Resource 관리 방법은 AWS의 Resource Groups을 통해서 진행됩니다. 아래 그림을 보시면서 감을 익히시기 바랍니다.

Tag Editor을 통해서 AWS 모든 Resource의 Tag를 관리할 수 있습니다.


UI가 매우 직관적이라서 3분정도 가지고 놀면 어떤 방식으로 동작하는지 확인 가능합니다.

아래 예는 Seoul과 EU Region 기준으로 모든 AWS Resource들 중에서 Tag의 Name이 leeTest를 포함하는 Resource들을 보여주고 있습니다. 여기서 새로운 Tag를 넣거나 삭제할 수 있습니다. 만약 leeTest라는 서비스가 있다면 해당 태그를 저런 방식으로 지정할 수 있습니다. 각자 방식으로 Tag를 지정하시기 바랍니다.


그럼 이제 Resource Group을 선택합니다.


Tag를 기준으로 Resource를 관리할 수 있도록 생성합니다.


Savs를 하시면 아래와 같이 Web Console 우측 상단에 Resource Groups에 기입한 항목을 볼 수 있습니다.


항목을 클릭하면 아래와 같이 해당 Tag가 설정된 AWS Resource를 관리할 수 있는 화면이 나타납니다. 

API 호출을 통해 정기적으로 Snapshot을 생성한 내역은 확인되지 않네요. Snapshot api의 경우 Tag를 기입할 수 없어서 안 나옵니다...

Resource Group에 대한 Policy는 생성할 수 없어, 원하는 Group 혹은 User들에게만 Viewing이 가능하지는 않습니다.

두 번째, 그럼 해당 Tag를 통해 어떻게 Policy를 생성하고 Group 및 User에게 권한을 줄 수 있는지 알아보겠습니다.

IAM을 선택하고 해당 메뉴로 들어갑니다. Create Policy를 생성합니다.


Create Policy 항목이 보입니다. Policy는 Json 형태로 만들어져 있습니다.

Copy an AWS Managed Policy는 AWS에서 정의한 Policy입니다.

Policy Generator를 이용하면 AWS에서 제공하는 절차에 맞게 Custom Policy를 생성할 수 있습니다.

Create Your Own Policy는 User가 자유롭게 Json 형태의 Policy를 생성할 수 있습니다.

이번 블로깅에서는 Policy Generator를 통해 진행합니다.


그럼 다음과 같은 화면이 나타납니다. 

Effect Allow, Deny가 있습니다. Effect에서 Deny는 Allow보다 더 우선적입니다. 예를 들어 모든 Resource에 대한 액션을 Deny로 하고 몇몇 항목을 Allow한다 해도 모든 Resource에 대한 액션이 Deny됩니다.

AWS Service는 AWS Resource 항목입니다.

Actions은 각 항목에 대한 정책입니다. 가령 Start, Stop, Terminate 등 세부 정책을 줄 수 있습니다.

ARN은 각 Resource들에 ID입니다. 아래와 같은 형식으로 ARN이 구성됩니다.




만약 아래와 같이 Policy를 생성했다면 해당 Policy는 EC2 Tag에 Name:leeTest를 포함하는 값이 있다면 모든 EC2에 대한 모든 액션이 가능합니다.


Policy Document를 보면 아래와 같습니다.


Policy를 생성했다면 해당 User에만 생성한 Policy 정책을 Attach하시면 됩니다.

만약 위와 같은 방식으로 진행했다면 test라는 User는 EC2의 Name Tag가 leeTest를 포함하는 것만 접근 가능합니다.


IAM에 대해서 더 확인하고 싶으시다면 http://www.slideshare.net/awskorea/20150109-aws-black-belt-iam-younjin 에서 좀 더 자세한 확인이 가능합니다. 깔끔하게 잘 정리가 되어있네요. 


이번 블로깅을 통해 AWS 계정 및 Resource 관리에 대해 어느 정도 감을 잡으시길 바랍니당.

감사합니다.


'Security&Identity > IAM' 카테고리의 다른 글

AWS IAM 태그 기반 Policy 생성  (0) 2016.10.25
AWS 계정 및 Resource 관리 방법  (0) 2016.04.13