SEC 2: 사람과 시스템에 대한 자격 증명은 어떻게 관리합니까?

안전한 AWS 워크로드 운영에 접근할 때 관리해야 하는 두 가지 유형의 자격 증명이 있습니다. 액세스 권한을 관리하고 부여하는 데 필요한 자격 증명의 유형을 이해하면 적절한 자격 증명이 적절한 조건에서 적절한 리소스에 액세스할 수 있도록 보장할 수 있습니다. 인적 자격 증명: 관리자, 개발자, 운영자 및 최종 사용자가 AWS 환경 및 애플리케이션에 액세스하려면 자격 증명이 필요합니다. 이들은 조직의 구성원이거나 협업하는 외부 사용자로, 웹 브라우저, 클라이언트 애플리케이션 또는 대화형 명령줄 도구를 통해 AWS 리소스와 상호작용합니다. 시스템 자격 증명: 서비스 애플리케이션, 운영 도구 및 워크로드에서 AWS 서비스에 요청을 하려면(예: 데이터 읽기) 자격 증명이 필요합니다. 이러한 자격 증명에는 Amazon EC2 인스턴스 또는 AWS Lambda 함수와 같이 AWS 환경에서 실행되는 시스템이 포함됩니다. 액세스가 필요한 외부 당사자의 시스템 자격 증명을 관리할 수도 있습니다. 또한 AWS 환경에 액세스해야 하는 시스템이 AWS 외부에 있을 수도 있습니다.

리소스

Mastering identity at every layer of the cake
Managing user permissions at scale with AWS SSO
Best Practices for Managing, Retrieving, and Rotating Secrets at Scale
IAM Best Practices
The AWS Account Root User
Getting Started with AWS Secrets Manager
Temporary Security Credentials
Identity Providers and Federation
Security Partner Solutions: Access and Access Control

모범 사례:

개선 계획

강력한 로그인 메커니즘 사용

  • MFA 로그인을 적용하는 IAM 정책 생성: 사용자가 내 보안 자격 증명 페이지에서 역할을 수임하고 자신의 자격 증명을 변경하고 MFA 디바이스를 관리할 수 있도록 하는 몇 가지 작업을 제외한 모든 IAM 작업을 금지하는 고객 관리형 IAM 정책을 생성합니다.
    https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html#tutorial_mfa_step1
  • 자격 증명 공급자에서 MFA 활성화: 사용하는 자격 증명 공급자 또는 AWS Single Sign-On(SSO)과 같은 Single Sign-On 서비스에서 MFA를 활성화합니다.
    https://aws.amazon.com/iam/details/mfa/
  • 강력한 암호 정책 구성: 무작위 대입 공격으로부터 보호할 수 있도록 IAM 및 연동 자격 증명 시스템에서 강력한 암호 정책을 구성합니다.
    http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html
  • 정기적인 자격 증명 교체: 워크로드 관리자가 암호와 액세스 키(사용하는 경우)를 정기적으로 변경해야 합니다.
    Rotate credentials regularly
  • 임시 자격 증명 사용

  • 최소 권한 정책 구현: IAM 그룹 및 역할에 최소 권한 액세스 정책을 적용하여 사용자별로 정의한 역할 또는 기능을 반영합니다.
    Grant least privilege
  • 불필요한 권한 삭제: 불필요한 권한을 삭제하여 최소 권한 정책을 구현합니다.
    Reducing policy scope by viewing user activity
    View role access
  • 권한 경계 고려: 권한 경계는 자격 증명 기반 정책을 통해 IAM 엔터티에 부여할 수 있는 최대 권한을 설정하는 관리형 정책을 사용하는 고급 기능입니다. 엔터티의 권한 경계는 자격 증명 기반 정책과 권한 경계 모두에서 허용되는 작업만 수행하도록 허용합니다.
    Lab: IAM permissions boundaries delegating role creation
  • 권한에 대한 리소스 태그 고려: 태그를 사용하여, 태깅을 지원하는 AWS 리소스에 대한 액세스를 제어할 수 있습니다. IAM 사용자 및 역할에 태깅하여 액세스할 수 있는 항목을 제어할 수도 있습니다.
    Lab: IAM tag based access control for EC2
    Attribute-based access control (ABAC)
  • 안전하게 보안 암호 저장 및 사용

  • AWS Secrets Manager 사용: AWS Secrets Manager는 비밀을 쉽게 관리할 수 있게 해 주는 AWS 서비스입니다. 보안 암호는 데이터베이스 자격 증명, 암호 및 타사 API 키는 물론, 임의의 텍스트일 수 있습니다.
    AWS Secrets Manager
  • 중앙 집중식 자격 증명 공급자 사용

  • 관리 액세스 중앙 집중화: IAM 자격 증명 공급자 엔터티를 생성하여 AWS 계정과 IdP(자격 증명 공급자) 간에 신뢰 관계를 설정합니다. IAM은 OIDC(OpenID Connect) 또는 SAML 2.0(Security Assertion Markup Language 2.0)과 호환되는 IdP를 지원합니다.
    Identity Providers and Federation
  • 애플리케이션 액세스 중앙 집중화: 애플리케이션 액세스를 중앙 집중화하는 Amazon Cognito를 고려합니다. Amazon Cognito를 사용하면 웹 및 모바일 앱에 사용자 가입/로그인 기능 및 액세스 제어를 빠르고 손쉽게 추가할 수 있습니다. Amazon Cognito는 수백만 명의 사용자로 확장되며 Facebook, Google 및 Amazon과 같은 소셜 자격 증명 공급자와 SAML 2.0을 통한 엔터프라이즈 자격 증명 공급자를 통한 로그인을 지원합니다.
    Amazon Cognito
  • 이전 IAM 사용자 및 그룹 제거: IdP(자격 증명 공급자)를 사용하기 시작한 후 더 이상 필요하지 않은 IAM 사용자 및 그룹을 제거합니다.
    Finding unused credentials
    Deleting an IAM group
  • 정기적으로 자격 증명 감사 및 교체

  • 정기적으로 자격 증명 감사: 자격 증명 보고서 및 IAM Access Analyzer를 사용하여 IAM 자격 증명 및 권한을 감사합니다.
    IAM Access Analyzer
    Getting credential report
    Lab: Automated IAM user cleanup
  • 액세스 수준을 사용하여 IAM 권한 검토: AWS 계정의 보안을 강화하기 위해 각 IAM 정책을 정기적으로 검토하고 모니터링합니다. 필요한 작업을 수행하는 데 필요한 최소 권한만 정책에서 부여하는지 확인합니다.
    Use access levels to review IAM permissions
  • IAM 리소스 생성 및 업데이트 자동화 고려: AWS CloudFormation을 사용하면 템플릿을 확인하고 버전을 제어할 수 있으므로, 역할 및 정책을 포함한 IAM 리소스 배포를 자동화하고 인적 오류를 줄일 수 있습니다.
    Lab: Automated deployment of IAM groups and roles
  • 사용자 그룹 및 속성 활용

  • AWS Single Sign-On(SSO)을 사용하는 경우 그룹 구성: AWS SSO는 사용자 그룹을 구성하고 그룹에 원하는 수준의 권한을 할당할 수 있는 기능을 제공합니다.
    AWS Single Sign-On - Manage Identities
  • ABAC(속성 기반 액세스 제어)에 대해 알아보기: ABAC(속성 기반 액세스 제어)는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다.
    What Is ABAC for AWS?
    Lab: IAM Tag Based Access Control for EC2