Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Hack3rSoltion의 클라우드 보안 이야기

AWS IAM(Identity & Access Management‎) 본문

AWS

AWS IAM(Identity & Access Management‎)

hack3rsolution 2018. 1. 29. 15:16

AWS에는 많은 서비스들이 있습니다.

보안 서비스들도 많죠.

그중 가장 중요도가 높은 서비스가 무엇이냐고 저에게 묻는다면 저는 'AWS IAM'이라고 대답할 것입니다.

AWS IAM은 사용자의 AWS 서비스와 리소스에 대한 액세스를 통제할 수 있습니다. 

또한, AWS 사용자 및 그룹을 만들고 관리하며 AWS 리소스에 대한 액세스를 허용 및 거부할 수 있습니다. 

여기서 사용자는 사람이 될 수도 있고 EC2 등을 포함한 AWS의 서비스가 될 수도 있습니다.

따라서 AWS IAM은 사람이나 AWS에 대한 모든 인증과 권한을 관리하는 막강한 서비스라고 할 수 있을 것입니다.

어쩌면 AWS에서 제공하는 모든 서비스들 중에서 가장 설명하기 어려운 서비스일 것입니다.

AWS IAM은 많은 사용경험을 바탕으로 노하우가 쌓여야만 제대로 운영/관리할 수 있습니다.

오늘은 간단한 소개만 하겠습니다.


AWS IAM은 기능이 워낙 많아서 best practice를 기준으로 설명드리겠습니다.


1. 루트 – 루트 사용을 축소 또는 제거.

  a. 루트 계정을 사용하지 않는 것이 보안 모범 사례입니다. 

  b. 루트 계정은 모든 서비스와 리소스에 대한 액세스 권한을 부여하기 때문입니다. 


2. 사용자 – 개별 사용자 생성.

  a. IAM 사용자를 사용하면, 특정 서비스 및 관련 리소스에 액세스하는 특정 사용자에게 정책을 좀 더 쉽게 할당할 수 있습니다.

  b. 절대로 IAM 사용자를 공유해서 쓰는 일은 없어야 합니다.


3. 그룹 – 그룹을 통한 권한 관리.

  a. 사용자는 그룹으로 권한을 관리할 수 있습니다.

  b. 그룹에 권한을 부여하면 사용자는 그룹의 권한을 그대로 상속받습니다.

  c. 그룹을 잘 관리하는 것만으로도 보다 쉬운 권한관리를 할 수 있습니다.


4. 권한 – 최소 권한 부여.

  a. 사용자에게 필요한 최소한의 권한만 부여합니다. 이를 최소 권한이라고 합니다.

  b. AWS IAM policies는 명시적 deny를 기반으로 하고 있습니다.

  c. 편하게 사용하고자 많은 AWS 사용자들이 'administration' 권한을 가지고 있습니다.

  d. 과도한 권한은 곧 보안사고로 이어질 수 있다는 것을 명심해야 합니다.


5. 감사 – AWS CloudTrail 활성화.

  a. AWS CloudTrail은 AWS 내에서 호출되는 모든 API를 기록합니다.

  b. 따라서 사고 대응이나 이슈 발생 시 추적할 수 있는 가장 기본적인 정보를 제공합니다.

  c. 단순히 AWS CloudTrail을 남기는 것이 아니라 잘 관리하고 모니터링하는 것이 중요합니다.


6. 암호 – 강력한 암호 정책 구성.

  a. AWS IAM 콘솔화면 내에서 암호정책을 설정할 수 있습니다.

  b. 되도록 설정할 수 있는 모든 정책을 활성화하여 암호를 강력하게 관리해야 합니다.

  c. 가장 기본적인 보안정책이지만 현업에서는 잘 지켜지지 않는 경우가 많습니다.


7. MFA – 권한 있는 사용자에 대해 MFA 활성화.

  a. 루트로 접근 시 반드시 MFA를 사용하게 해야 합니다.

  b. 그 외 높은 권한의 사용자는 MFA로 AWS 콘솔에 접속하게 해야 합니다.

  c. MFA 활성화만으로도 강력한 보안성 향상을 기대할 수 있습니다.


8. 역할 – Amazon EC2 인스턴스에 대해 IAM 역할 사용.

  a. IAM 역할을 사용하지 않을 경우 credential keys를 사용해야 합니다.

  b. 보안을 강화하기 위해서 Keys의 사용은 최소화해야 합니다.

  c. EC2 인스턴스에 IAM 역할을 사용하면 보안은 keys 사용으로 인한 위험을 줄이고 권한관리는 더 세밀하게 할 수 있습니다.


9. 공유 – IAM 역할을 사용하여 액세스 공유.

  a. 되도록 AWS IAM 사용자를 생성하는 것보다 내부 인사정보와 연동하는 것을 추천합니다.

  b. 이렇게 되면 AWS에는 사용자가 없어 관리포인트가 현저하게 줄어들게 됩니다.

  c. 또한 사용자는 사용하던 계정을 그대로 사용하게 되므로 편리하게 접속할 수 있습니다.

  d. AWS는 ADFS, SAML과 같은 외부 인사정보와 연동할 수 있는 다양한 기술을 지원하고 있습니다.


10. 교체 – 보안 자격 증명을 주기적으로 교체.

  a. AWS credential keys를 사용하는 경우 주기적으로 키를 교체해주어야 합니다.

  b. Credential keys가 교체되면 keys를 사용하는 시스템 담당자들이 매우 귀찮아 합니다.

  c. AWS를 대상으로 하는 해커들의 타겟은 바로 Credential keys라는 것을 잊지 말아야 합니다.


11. 조건 – 조건을 적용해 액세스 권한을 추가로 제한.

  a. AWS IAM 권한 설정 시 반드시 조건을 이용하여 권한을 제한해야 합니다.

  b. 이를테면 특정 VPC에서만 권한을 사용할 수 있도록 한다던지 하는 형태로요.

Comments