발표자료 다시보기: https://youtu.be/A77sIwSPCsE
AWS 에서는 클라우드 환경에서의 권한 관리를 위하여 IAM( Identity & Access Management ) 서비스를 제공하고 있습니다. 이 웨비나는AWS 의 다양한 자원들에 대한 이용 권한을 효율적으로 제어하고 관리하기 위하여 사용될 수 있는 IAM 의 다양한 옵션들을 살펴보고 IAM 의 권한이 할당되는 원리들을 설명합니다.
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
1. IAM을 통한 클라우드에서의 권한 관리
신 은 수 | Security Specialist Solutions Architect
2. 강연 중 질문하는 방법 AWS Builders
Go to Webinar “Questions” 창에 자신이 질문한
내역이 표시됩니다. 기본적으로 모든 질문은
공개로 답변 됩니다만 본인만 답변을 받고
싶으면 (비공개)라고 하고 질문해 주시면 됩니다.
본 컨텐츠는 고객의 편의를 위해 AWS 서비스 설명을 위해 온라인 세미나용으로 별도로 제작, 제공된 것입니다. 만약 AWS
사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우, AWS 사이트(aws.amazon.com)가 우선합니다. 또한 AWS 사이트
상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.
AWS는 본 컨텐츠에 포함되거나 컨텐츠를 통하여 고객에게 제공된 일체의 정보, 콘텐츠, 자료, 제품(소프트웨어 포함) 또는 서비스를 이용함으로 인하여 발생하는 여하한 종류의 손해에
대하여 어떠한 책임도 지지 아니하며, 이는 직접 손해, 간접 손해, 부수적 손해, 징벌적 손해 및 결과적 손해를 포함하되 이에 한정되지 아니합니다.
고지 사항(Disclaimer)
5. IAM Policy 란?
Policy 는 AWS 서비스와 리소스에 대한 인가 기능을 제공합니다.
Policy 를 정의할 때는 어떤 IAM Principal 이 어떤 Condition 에서 AWS 의 어떤
Resource 에 대해 어떤 Action 을 허용 혹은 차단할 것인지를 지정합니다.
IAM 은 여러분이 정의한 Policy 를 기반으로 AWS 요청을 검사/평가 하게되며
최종적으로 허용 혹은 차단을 결정합니다.
6. 사용자 vs 그룹
Account
Admin Group Dev Group Security Group
Admin_A
Admin_B
Dev_A
Dev_B
Dev_C
Sec_A
Sec_B
Admin_A
Admin_A
Dev_E
Sec_D
IAM Group 은 동일한 권한을 갖아야
하는 IAM User 에게 권한을 설정하는
것을 편리하게 하기 위함이며 IAM
Group 이 보안 주체가 될 수는
없습니다.
IAM 사용자는 최대 10개의 Group 에
속할 수 있습니다.
7. IAM Policy 의 종류와 사용 목적
AWS Organizations
Service control policies (SCPs)
Specific AWS services
Resource-based policies
AWS Identity and Access Management (IAM)
Permission Policies, Permission Boundaries
AWS Security Token Service (AWS
STS)
Scoped-down policies
VPC Endpoints
Endpoint Policies
어카운트 내의 특정 Principal 에 대한
서비스 제어
일반적인 권한 공유를 제한적으로 허용
다수 계정 접속이나 서비스로부터의
접근을 제어
VPC Endpoint 에서 서비스로의 접근을
제어
IAM Principal(Users, Roles) 에 대한 상세
권한 설정 및 사용 가능한 권한 경계
모든 Policy 는 동일한 문법을 사용
9. IAM Policy 의 구조
{
"Statement":[{
"Effect":”Allow or Deny",
"Principal":"principal",
"Action":"action",
"Resource":"arn",
"Condition":{
"condition":{
"key":"value" }
}
}
]
}
Principal – 접근을 허용 혹은 차단하고자 하는 대상
"Principal":"AWS":"arn:aws:iam::123456789012:user/username"
Action – 허용 혹은 차단하고자하는 접근 타입
"Action":"s3:GetObject"
Resource – 요청의 목적지가 되는 서비스
"Resource":"arn:aws:sqs:us-west-2:123456789012:queue1"
Condition – 명시된 조건이 유효하다고 판단될 수 있는 조건
"StringEqualsIfExists": {"aws:RequestTag/project": [“Pickles“]}
Effect – 명시된 정책에 대한 허용 혹은 차단
10. IAM Policy 예제 – 네트워크 관리자용
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:AttachInternetGateway",
"ec2:AttachVpnGateway",
"ec2:CreateVpc",
"route53domains:*",
<snip>
"cloudwatch:DescribeAlarms",
"logs:GetLogEvents“ ],
"Resource": "*"
},
<snip>
{
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:ListRoles",
"iam:PassRole“ ],
"Resource": "arn:aws:iam::*:role/flow-logs-*"
} ] }
사용 권한을 클라우드 네트워크 구성 환경과 관련된 내용으로 제한
11. IAM Policy 예제 – 시스템 운영자용
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:RebootInstances",
"ec2:RunInstances",
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:TerminateInstances"
],
"Condition": {
"StringLikeIfExists": {
"ec2:Region": [ "us-east-1", "us-west-2“ ],
"ec2:InstanceType": [ "t1.*, "t2.*", "m3.*“ ]
}
},
"Resource": "*"
}
]
}
사용 권한을 EC2 로 한정하고 사용할 수 있는 EC2 Instance 의 지역과 타입을 제한
25. IAM Role 의 활용
보안성
임시 보안 자격
증명의 사용
편리성
다수의 사용자나
어플리케이션이 사용할 수
있으므로 권한 관리가 편리
무료
별도의 과금 없음
26. 멀티 계정 환경에서의 자원 공유
prod@example.com
Acct ID: 111122223333
ddb-role
dev@example.com
Acct ID: 123456789012
ddb-role 의 임시
보안 자격 증명을
이용하여 AWS API
호출
IAM user: Bob
ddb-role 에 대한
임시 보안 자격
증명 획득
Bob 의 Access
Key 를 이용하여
인증
ddb-role 은 AWS account dev@example.com
(123456789012) 의 IAM User 를 신뢰
{ "Statement": [
{
"Effect":"Allow",
"Principal":{"AWS":"123456789012"},
"Action":"sts:AssumeRole"
}]}
Prod Account 에 있는 ddb-role 에 대한 접근을 허용하는 보안 정책을 Bob 에게 할당
{ "Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::111122223333:role/ddb-role"
}]}
ddb-role 에 할당된 권한
{ "Statement": [
{ "Action":
[
"dynamodb:GetItem",
"dynamodb:BatchGetItem",
"dynamodb:DescribeTable",
"dynamodb:ListTables"
],
"Effect": "Allow",
"Resource":"arn:aws:dynamodb:us-east-1:
123456789012:table/books"
}]}
books
27. {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Project" : "Blue"
}
}
}
]
}
Project=Blue
VPC
Project=Green
TAG 를 활용한 접근 권한 제어
28. 더 나은 세미나를 위해
여러분의 의견을 남겨주세요!
▶ 질문에 대한 답변 드립니다.
▶ 발표자료/녹화영상을 제공합니다.
http://bit.ly/awskr-webinar