[AWS] 챕터2 IAM - IAM 소개(2)

업데이트:     Updated:

카테고리:

태그:

IAM Section

IAM: 암호 정책

  • AWS 계정에서 사용자 지정 암호 정책을 설정하여 IAM 사용자 암호의 복잡성 요건과 의무적인 교체 주기를 지정할 수 있습니다.
  • 사용자 지정 암호 정책을 설정하지 않은 경우 IAM 사용자 암호는 기본 AWS 암호 정책을 충족해야 합니다.

암호 정책 설정에 대한 규칙

  • IAM 암호 정책은 AWS 계정 루트 사용자 암호 또는 IAM 사용자 엑세스 키에 적용되지 않습니다. (암호가 만료되면 AWS Console에는 로그인할 수 없지만 엑세스 키는 계속 사용할 수 있습니다.)
  • 최소 길이 및 문자 유형 요건이 변경되는 경우 이러한 설정은 다음 번에 사용자가 자신의 암호를 변경할 때 적용됩니다.
  • 암호 만료 기간을 설정하면 만료기간이 바로 적용됩니다. 예를 들어 암호 만료 기간을 90일로 설정한 경우, 기존 암호가 90일 이상된 모든 IAM 사용자의 암호가 만료됩니다.

암호 정책을 설정하는 데 필요한 권한

  • iam:GetAccountPasswordPolicy - 엔터티(사용자 또는 역할)가 계정의 암호 정책을 볼 수 있도록 허용합니다.
  • iam:DeleteAccountPasswordPolicy - 엔터티가 계정의 사용자 지정 암호 정책을 삭제하고 기본 암호 정책으로 되돌릴 수 있도록 허용합니다.
  • iam:UpdateAccountPasswordPolicy - 엔터티가 계정의 사용자 지정 암호 정책을 생성하거나 변경할 수 있도록 허용합니다.
  • 다음 정책은 계정 암호 정책을 보고 편집할 수 있는 모든 엑세스 권한을 허용합니다.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "FullAccessPasswordPolicy",
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:DeleteAccountPasswordPolicy",
                "iam:UpdateAccountPasswordPolicy"
            ],
            "Resource": "*"
        }
    ]
}

기본 암호 정책

  • 관리자가 사용자 지정 암호 정책을 설정하지 않은 경우 IAM 사용자 암호는 기본 AWS 암호 정책을 충족해야 합니다. 기본 암호 정책은 다음 조건을 적용합니다.
    • 최소 8자부터 최대 128자의 암호 길이
    • 대문자, 소문자, 숫자 및 ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ' 기호 중에서 세 가지 이상의 문자 유형 조합
    • AWS 계정 이름 또는 이메일 주소와 동일하지 않아야 함

사용자 지정 암호 정책 옵션

  • 계정에 대한 사용자 지정 암호 정책을 구성할 때 다음 조건을 지정할 수 있습니다.
    • 암호 최소 길이
    • 암호 강도
    • 암호 만료 활성화
    • 암호 만료 시 관리자 재설정 필요
    • 사용자 자신의 암호 변경 허용
    • 암호 재사용 제한
  • 자세한 사용자 지정 암호 정책 옵션을 참고하려면 여기를 클릭하세요

IAM: MFA (Multi Factor Authentication)

  • MFA는 사용자가 AWS 웹 사이트 또는 서비스에 액세스할 때 사용자의 정규 로그인 자격 증명 외에도 AWS가 지원되는 MFA 매커니즘의 고유 인증을 제출하라고 요청함으로써 보안을 더욱 강화합니다.
  • 보안 강화를 위해 멀티 팩터 인증(MFA)을 구성하여 AWS 리소스를 보호하는 것이 좋습니다.
  • IAM 사용자 또는 AWS 계정 루트 사용자에 대해 MFA를 활성화할 수 있습니다.

사용자가 AWS에 접근하는 방법

  1. AWS Management Console: (protected by password + MFA)
  2. AWS Command Line Interface (CLI): (protected by access keys)
  3. AWS Software Developer Kit (SDK): (protected by access keys)

액세스 키 (access keys)

  • 액세스 키는 IAM 사용자 또는 AWS 계정 루트 사용자의 장기 자격 증명입니다. 액세스 키를 사용하여 AWS CLI 또는 AWS API에 대한 프로그래밍 요청에 서명할 수 있습니다.
  • 액세스 키는 액세스 키 ID와 보안 액세스 키의 두 가지 부분으로 구성됩니다.
  • 액세스 키 ID ~= 사용자 ID
  • 보안 액세스 키 ~= 사용자 PW
  • 최대 2개의 액세스 키를 가질 수 있고, 보안 액세스 키는 생성할 때만 확인할 수 있습니다.
  • 액세스 키는 다른 사람과 공유해서는 안됩니다!!

AWS CLI (Command Line Interface)

  • AWS 명령줄 인터페이스는 명령줄 셸에서 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다.
  • AWS Console의 모든 IaaS 관리, 액세스 기능은 AWS API 및 AWS CLI에서 사용할 수 있습니다.
  • AWS CLI는 AWS 서비스의 퍼블릭 API에 대한 직접 액세스를 제공합니다. AWS CLI를 사용하여 서비스의 기능을 탐색하고 셸 스크립트를 개발하여 리소스를 관리할 수 있습니다.
e.g)
~ aws s3 cp myfile.txt s3://ccp-mybucket/myfile.txt
~ aws s3 ls s3//ccp-mybucket
2021-05-14 03:22:52           0 myfile.txt
~ 

AWS SDK (Software Developer Kit)

  • 언어별 API 라이브러리 집합으로 현재 지원되는 언어는 다음과 같습니다.
    • SDKs (JavaScript, Python, PHP, .NET, Ruby, Java, Go, Node.js, C++)
    • Mobile SDKs (Android, IOS, …)
    • IoT Device SDKs (Embedded C, Arduino, …)
  • AWS 서비스에 프로그래밍 방식으로 접근하고 관리할 수 있습니다. 곧 애플리케이션 코드에 내장될 수 있습니다.
  • AWS CLI는 AWS SDK for Python을 기반으로 합니다.

IAM: Roles

  • IAM 역할은 IAM 사용자와 몇 가지 점에서 유사합니다. 역할과 사용자 모두 AWS에서 자격 증명으로 할 수 있는 것과 할 수 없는 것을 결정하는 권한 정책을 포함하는 AWS 자격 증명입니다.
  • 그러나 역할은 한 사람과만 연관되지 않고 해당 역할이 필요한 사람이라면 누구든지 맡을 수 있어야 합니다.
  • 또한 역할에는 그와 연관된 암호 또는 액세스 키와 같은 표준 장기 자격 증명이 없습니다. 대신에 역할을 맡은 사람에게는 해당 역할 세션을 위한 임시 보안 자격 증명이 제공됩니다.
  • 역할은 다음의 주체들이 사용할 수 있습니다.
    • IAM 사용자 (사용자 Roles)
    • AWS에서 제공하는 웹 서비스(예: EC2) (서비스 Roles)

IAM: Security Tools

IAM Credentials Report (계정 레벨)

  • 계정의 모든 사용자와 액세스 키, MFA 디바이스 등 이들의 자격 증명 상태를 나열하는 ‘자격 증명 보고서‘를 생성하고 다운로드 할 수 있습니다.
  • 이 보고서를 통해 암호, 액세스 키 교체 등 자격 증명의 수명 주기 요구 사항이 어떤 영향을 주는지 감사할 수 있습니다.
  • 최소 네 시간에 한 번씩 자격 증명 보고서를 생성할 수 있고 4시간 이내에 새로운 보고서를 요청할 시 이전 보고서를 다운로드하고 4시간이 넘은 경우 새로운 보고서를 생성하고 다운로드 합니다.

IAM Access Advisor (user-level)

  • IAM에서 각 리소스 유형에 대한 정보를 볼 수 있습니다. 각각의 리소스 유형별로 제공되는 정보는 다음과 같습니다.
    • 사용자 - 사용자가 허용된 각 서비스에 액세스하려고 시도한 마지막 시간을 표시합니다.
    • 사용자 그룹 - 사용자 그룹 맴버가 허용된 각 서비스에 액세스하려고 시도한 마지막 시간에 대한 정보를 표시합니다. 또한 이 보고서에는 액세스를 시도한 총 맴버 수가 포함됩니다.
    • 역할 - 해당 역할이 허용된 각 서비스에 액세스하려고 시도한 마지막 시간을 표시합니다.
    • 정책 - 사용자 또는 역할이 허용된 각 서비스에 액세스하려고 시도한 마지막 시간에 대한 정보를 표시합니다. 또한 이 보고서에는 액세스를 시도한 총 엔터티 수가 포함됩니다.
  • AWS 관리자는 이 정보를 이용해 IAM 정책을 개정하는 데 활용할 수 있습니다.

IAM: 가이드라인 & 모범 사례

  • AWS 서비스에 요청하기 위해 애플리케이션이나 백엔드 프로세스 같은 워크로드에서 IAM 역할을 사용합니다.
  • 사용자와 권한을 그룹에 할당합니다.
  • 강한 사용자 지정 암호 정책을 생성합니다.
  • IAM 사용자와 액세스 키는 절대 공유해서는 안됩니다.
  • 다중 인증(MFA) 필요
  • 장기 보안 인증이 필요한 경우 정기적으로 액세스 키 교체
  • 루트 사용자를 보호하고 일상적인 작업에 사용하지 않습니다.
  • 최소 권한 적용
  • AWS 관리형 정책으로 시작하고 최소 권한을 적용하기 위해 정책을 올바르게 개정합니다.
  • IAM 액세스 분석을 사용하여 액세스 활동을 기반으로 최소 권한 정책 생성
  • 사용하지 않는 사용자, 역할, 권한, 정책 및 보안 인증은 정기적으로 검토하고 제거합니다.
  • IAM 정책의 조건을 사용하여 액세스 추가 제한

📖출처

AWS > aws-documentation > AWS Identity and Access Management > 사용 설명서


👍 개인 공부 기록용 블로그입니다. 오류나 조언이 있으시면 언제든지 댓글 혹은 메일로 남겨주시면 감사하겠습니다! 😄

맨 위로 이동하기

SAA 카테고리 내 다른 글 보러가기

댓글남기기