(7) AWS IAM

JY Kim·2023년 3월 19일
0

AWS SA STUDY GUIDE

목록 보기
7/9
post-thumbnail

안녕하세요 levin 입니다. AWS Study 일곱 번째 시간
AWS IAM 에 대한 내용입니다.

AWS Identity and Access Management

AWS 리소스 관리에 필요한 신분확인 및 권한부여 업무를 처리할 수 있는 기능. 신분은 유저 또는 역할로 나타낼 수 있으며, 역할은 서비스, 다른 유저, 그룹에 할당할 수 있다.

IAM 기반의 신분 관리

root user : AWS 계정을 생성하면 처음 생기는 계정

  • 계정 내에서 모든 서비스와 리소스에 접근할 수 있는 권한
  • 계정 보호를 위해 평소엔 다른 계정을 생성하여 사용할 것을 권장

[IAM 정책]

하나 이상의 AWS 리소스와 관련된 일련의 허용 동작 및 불허 동작을 정리한 문서라고 할 수 있으며, 정책 문서에 의해 특정 사용자는 해당 리소스에 접근해서 원하는 작업을 수행할 수 있다. ‘효과’ 라는 속성으로 허용 또는 불허를 나타내며 Allow , Deny 라는 속성값을 사용한다.

IAM Dashboard를 통해 수백 여 개의 사전 정의된 정책을 확인하고, 키워드를 이용해 자신의 목적에 맞는 정책을 찾아서 활용할 수 있고, 정책 생성도 가능하며, 직접 정책을 작성할 수도 있다.

  • 정책 문서에 명시되지 않은 동작은 기본적으로 불허
  • Deny 속성은 접근제약이 없는 리소스에서 하지말아야 할 경우 등에 쓰임

IAM 정책 연계

  • 하나의 정책을 다수의 신분에 연계할 수 있다.
  • 하나의 신분에는 최대 10개의 정책 연계 가능하다.
  • 상반된 정책이 연계되어 있을 땐 불허 기준을 따른다.

[유저와 루트 계정]

루트 계정 보호를 위한 방법의 절차

  • 루트 계정과 연계된 모든 액세스 키를 삭제.
  • 길고 복잡한 패스워드를 작성해 안전한 패스워드 볼트에 저장.
  • 루트 계정에 다중 인증 기능을 활성화.
  • 일상적인 어드민 작업에서 루트 계정 사용을 자제.

사전 작업으로 어드민 계정을 별도로 생성해서 적합한 권한을 부여한다. 보통 AdministratorAccess 정책 적용.
이후 새 IAM 유저를 생성할 때 패스워드 정책 적용이 제시되며, 사용자는 최소 길이 및 복잡성 제약 조건과 패스워드 재설정 최대 주기를 적용할 수 있다.

[IAM 액세스 키 관리]

액세스 키는 프로그래밍 기법 또는 CLI 기반 접근 시 권한 인증 기능을 제공한다. 기존의 유저네임 및 패스워드 방식을 사용하지 않고, 로컬 환경에서 액세스 키 ID와 시크릿 액세스 키를 이용해 특정 리소스에 대한 접근 권한을 부여받을 수 있는 것이다.

  • 미사용 키 비활성화하기 : 활성화된 키는 해킹 등에 위험하기도 하고, 사용자가 생성한 유저와 키에 대해 모니터링도 할 필요가 있기때문에 일정 기간 사용되지 않은 키를 비활성화 하거나 삭제하는 것이 좋다.
  • 키 로테이션 : 오래 사용한 키일수록 위험에 노출됐을 가능성이 더 크기 때문에 정기적으로 삭제해주는 것이 좋다. 사용 기한을 일정기간으로 정해두는 것을 권장.

[IAM 그룹]

개별 유저를 생성할 때 유저 마다 권한 부여 및 관리가 어렵기 때문에 그룹을 생성해서 업무 영역, 조직 업무 내용 등으로 나눠 권한 부여를 하고 관리할 수 있게 한다. 개별 유저 단위가 아닌 그룹 단위로 작업을 할 수 있어 용이하다.

[IAM 롤]

유저 또는 서비스가 리소스에 대한 접근 요청을 할 때 이용할 수 있는 임시 신분.
ex) 유저에게 EC2 종료 권한 주지 않기, Elastic Container Service 사용을 위해 Elastic Container Registry 접근 권한 부여 등
다른 AWS 계정 또는 연합 자격인증 서비스를 이용해서 로그인한 사용자가 정의한 IAM 롤을 사용해야 할 때도 있다..

롤은 접근이 필요한 리소스의 신뢰 개체를 정의하는 방식으로 생성할 수 있으며, 신뢰 개체에는 AWS 서비스, AWS 계정, Amazon Cognito, Facebook 또는 Google로그인으로 접근권한을 증명한 웹 식별 객체, SAML 연합 자격인증 객체 등 4가지가 있다.

접근권한 관리 도구

IAM도 접근권한 관리 도구의 작은 일부이며, 주요 도구로는 Amazon Cognito, AWS Managed Microsoft AD, AWS Single Sign-On 등이 있고 AWS Key Management Service, AWS Secrets Manager, AWS CloudHSM 등이 있다.

[Amazon Cognito]

모바일 앱 및 웹 개발자를 위한 회원가입 및 로그인 기능 제공. 유저 풀(회원가입 및 로그인 기능)과, 아이덴티티 풀이 있다.

[AWS Managed Microsoft AD]

Microsoft Active Directory를 위한 AWS Directory Service라고 할 수 있고, AWS vpc에 포함된 리소스를 Active Diretory 를 통해 Microsoft SharePoint, NET, SQL 서버 기반 워크로드와 같은 방식으로 관리하는 것이다. AD Connector를 사용해서 온프레미스 MS AD 를 바로 연결할 수도 있다. 도메인 컨트롤러는 두 개의 VPC AZ에서 실행되고, 데이터 복제 및 소프트웨어 업데이트 등 인프라 관리 업무를 자동으로 수행한다.

[AWS Single Sign-On]

SSO는 AWS Directory Service로 관리되는 Microsoft Active Directory의 신분확인 및 권한부여 작업을 일관되게 수행하며, AWS Organizations(다수의 AWS 계정을 정채 기반으로 제어하는 관리 서비스)에 포함된 다수의 AWS 계정에서도 사용할 수 있다.

[AWS Key Management Service]

AWS 서비스를 이용하기 위한 암호화 키 생성 및 관리 서비스.
데이터 보호를 위한 키 암호화 키 생성, 추적, 순회, 삭제 기능 제공.

  • 완전관리형
  • 중앙제어형

AWS CloudTrail과 통합해 기업의 감사 업무 및 준법 감시 업무에 사용할 수 있다.

[AWS Secrets Manager]

서드파티 서비스나 데이터베이스 등에 접근하기 위한 자격정보를 안전하게 전달할 수 있게 해주는 도구이다. 실행 코드에 민감한 시크릿 코드를 입력하는 방법 대신, 변경사항을 정기적으로 업데이트 하는 방식으로 인증 자격을 확인받을 수 있고, 애플리케이션이 요구하는 최신 인증자격 정보를 제공할 수 있다.

[AWS CloudHSM]

웹 서버 인프라의 암호화 작업을 위해 전용의 가상 연산 기기 클러스터를 시작한다.
Hardware Security Module의 약자로, 웹 서버의 암호화 키 생성, 정렬, 관리 부담을 줄여주는 것이 주요 목적이다.

  • 키는 높은 수준의 보안성이 검증된 전용의 서드파티 HSM에 저장된다.
  • 미 연방정보처리표준 140-2 규정에 부합한다.
  • Public Key Cryptography Standards#11, Java JCE, Microsoft CNG 인터페이스를 이용해 애플리케이션과 통합된 기능을 제공한다.
  • VPC 내 고성능 암호화 생성 가속 기능

0개의 댓글