스터디/AWS SAA

섹션 25: Identity and Access Management (IAM) - 고급

blablax5 2024. 1. 17. 09:01

조직 개요

  • 글로벌 서비스로 다수의 AWS 계정을 동시에 관리 할 수 있게 해준다.
  • 조직에서 생성한 계정은 멤버 계정이라고 부르며 한 조직에만 소속이 된다.
    • 개인 계정으로도 조직에 속할수가있다.
  • 조직은 조직 전체의 비용을 지불 할 수 있음
    • 조직 내 모든 계정에 대해 집계된 사용량으로 기반한 비용 할인을 받을 수 있다.
  • 어떤 계정이 사용하지 않는 예약 인스턴스가 있으면?
    • 다른 계정에서 사용이 가능 (공유가 됨)
  • 계정 생성을 자동화 할 수 있는 API가 있음
  • 환경에 따라서 OU라는 것을 구성 할 수 있는데
    • 폴더같은 개념으로 조직의 권한을 분할 할 수 있다.
    • 예시)
      • 관리 계정
        • 프로덕션 OU
        • 테스트 OU
        • 개발 OU
    • 예시2)
      • 관리 계정
        • 개발팀 OU
          • 인프라팀 OU
          • 서비스팀 OU
        • 재무팀 OU
  • 조직 장점
    • 보안이 뛰어나다.
      • 계정이 VPC보다 독립적 이기때문
    • 관리 계정에서 모든 멤버 계정을 관리 할 수 있다.
    • 서비스 제어 정책 (SCP)를 정의 할 수 있다.
  • 서비스 제어 정책 (SCP)
    • 해당 사용자나 역할 모두가 계정 내에서 할 수 있는 일을 제한
    • 기본적으로 아무것도 허용 안함
    • 구체적인 허용 항목을 설정해야 작동
    • 명시적 거부가 하나라도 포함되면 기본적으로 액세스가 거부됨
      • 전체 액세스 거부인데 S3 버킷을 허용 해줘도 거부 된다는 뜻

IAM - 고급

  • aws:SourceIp
    • API 호출이 생성되는 클라이언트 IP를 제한 할 수 있다.
    • 예시) 회사 네트워크에서만 AWS 사용하도록 제한
  • aws:RequestedRegion
    • API 호출 리전을 제한한다.
    • 예시) eu-central-1, eu-west-1 리전에서 오는 EC2, RDS, DynamoDB 호출을 제한
  • ec2:ResourceTag
    • EC2 인스턴스에서 tag명에 따라 인스턴스의 시작과 종료를 허용할 수 있다.
    • 예시) test 태그가 달려있으면 시작, 종료를 할 수 있다.
  • aws:PrincipleTag
    • EC2 인스턴스 태그가 아닌 사용자 태그에 적용
    • 예시) 상기 작업 수행시 사용자의 Dapartment가 Data여야지 가능
  • aws:MultiFactorAuthPresent
    • 멀티팩터 인증을 강제 할 수 있다.
  • 버킷 수준의 권한
    • 버킷을 특정하여서 객체에다가 권한을 부여 할 수 있다.
    • 밑의 사진을 보면
      • 객체 수준 권한이기에 arn이 변경된것

IAM - Resource-based Policies vs IAM Roles

  • IAM 역할과 리소스 기반 정책의 차이
    • IAM 역할이 S3 버킷에 액세스
      • 역할을 맡으면 기존의 권한을 모두 포기하고
      • 해당 역할에 할당된 권한을 상속하게 된다.
    • S3 버킷 정책이 사용자의 액세스 허용
      • 리소스 기반 정책을 사용해서 역할을 맡을 필요가 없다.
    • SNS, SQS, Lambda에는 리소스 기반 정책
    • Kinesis Data Streams는 IAM 역할을 사용
    • 어떻게 구분하냐면 공식 문서를 보면 알 수 있다.

IAM - 정책 평가 로직

  • IAM 권한 경계
    • 사용자와 역할만 지원하고 그룹은 지원하지 않음
    • IAM 개체의 최대 권한을 정의하는 고급 기능
  • S3, CloudWatch, EC2에 Allow를 해주고 IAM 사용자에게 연결하면
    • 권한 경계를 설정 한 것
    • 저 3개의 작업만 할 수 있게됨
  • IAM 정책을 통해 IAM 권한을 지정해야 함
  • 권한 경계에서 만약에
    • iam:CreateUser 액션과 * 리소스를 사용자에게 연결해도
    • IAM 유저를 생성 할 수 없음
    • 왜냐하면
      • IAM 정책은 IAM 권한 경계 밖에 있기 떄문
  • IAM 권한 경계는 SCP와 함께 사용될 수 있음

AWS IAM Identity Center

  • AWS IAM 자격 증명 센터
    • AWS 싱글 사인온 서비스 후속 제품
    • 한번만 로그인하면 되니까 싱글 사인온이라고 함
  • Salesforce, Box, Microsoft 365 등 SAML2.0 통합이 가능한
    어떤 애플리케이션에라도 연결이 가능
  • EC2 Windows 인스턴스에도 싱글 로그인 제공
  • 조직에서 여러 계정에 대한 액세스를 관리 할 수 있음
  • 권한 셋을 사용하여 사용자를 그룹에 할당하는 하나 이상의 IAM 정책 정의
    • 무엇에 액세스 할 수 있는지 정의

AWS 디렉토리 서비스 - 개요

  • 전체 Microsoft 생태계에서 관리되는 온프레미스의 모든 사용자는
    • 모든 Window 서버에서 사용되는 소프트웨어
    • 객체의 데이터베이스
    • 사용자 계정
    • 컴퓨터 프린터
    • 파일 공유
    • 보안 그룹
  • Microsoft Active Directory의 관리 대상이 된다.
  • 중앙 집중식 보안 관리
    • 계정 생성, 권한 할당 등의 작업 가능
  • 모든 객체는 트리로 구성됨
    • 트리의 그룹을 포리스트라고 함 (포리스트는 AD 용어)
  • 액티브 디렉터리를 생성하는 3가지 서비스
    • AWS 관리형 Microsoft AD
      • AWS에 자체 액티브 디렉터리 생성
      • 로컬에서 관리 가능
      • 멀티팩터 인증 지원
      • 독립 실행형 Active Directory
      • 사용자가 있는 온프레미스 AD와 신뢰 관계를 구축 할 수 있음
      • 온프레미스와 AWS 액티브 디렉터리 간에 사용자를 공유 하는 것
    • AD 커넥터
      • 디렉터리 게이트웨이, 프록시로 온프레미스 AD에 리다이렉트함
      • MFA 멀티팩터 인증을 지원
      • 사용자는 온프레미스 AD에서만 관리
      • AD 커넥터는 이름처럼 연결하는 역할만 함
    • Simple AD
      • AWS의 AD 호환 관리형 디렉터리
      • Microsoft 디렉터리를 사용하지 않음
      • 온프레미스 AD와도 결합되지 않음
      • AWS 클라우드에 액티브 디렉터리가 필요할때 독립형인 Simple AD 서비스 사용

AWS Control Tower

  • 안전하고 규정을 준수하는 다중 계정 AWS 환경을 손쉽게 설정하고 관리
  • AWS Organization(조직) 서비스를 사용해 계정을 자동 생성함
  • 장점
    • 클릭 몇 번으로 환경 자동 설정
    • 원하는 모든 것을 미리 구성이 가능
    • 가드레일을 사용해 자동으로 지속적인 정책 관리
    • 정책 위반을 감지하고 자동으로 교정할 수 있음
    • 대시보드를 통해 모든 계정 규정 준수 모니터링
  • AWS Organization(조직)을 활용하는 또 다른 서비스임
  • 가드레일이란?
    • 두 가지 유형이 있음
    • 예방 가드레일
      • 계정을 무언가로부터 보호하는 것이므로 제한적이기 때문에
      • AWS Organization(조직) 서비스의 서비스 제한 정책인 SCP를 사용
      • 모든 계정에 적용
      • 예시) 모든 계정에서 리전을 제한 하고 us-east-1, eu-west-2 리전에서만 작업하게 함
    • 탐지 가드레일
      • 규정을 준수하지 않는 것을 탐지 하는 것
      • 규정 준수 AWS Config 서비스를 사용
      • SNS를 트리거해서 관리자에게 알람을 보내거나
        • Lambda 함수를 실행해서 자동으로 문제를 교정 할 수 있음
      • 예시) AWS Config를 사용하면 모든 멤버 계정에 Config가 배포됨
        규칙과 태그가 지정되지 않은 리소스를 모니터링