기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SEC03-BP02 최소 권한 액세스 권한 부여
구체적인 조건에서 특정 리소스에 대해 일정한 작업을 수행하기 위해 자격 증명이 필요한 액세스 권한만 부여하는 것이 좋습니다. 개별 사용자에 대한 권한을 정의하는 대신, 그룹 및 자격 증명 속성을 사용하여 대규모로 권한을 동적으로 설정합니다. 예를 들어 개발자 그룹이 자체 프로젝트에 대한 리소스만 관리하도록 액세스 권한을 허용할 수 있습니다. 이렇게 하면 특정 개발자가 프로젝트에서 빠지게 될 경우 기본 액세스 정책을 변경하지 않고도 해당 개발자의 액세스 권한이 자동으로 해지됩니다.
원하는 성과: 사용자는 작업을 수행하는 데 필요한 권한만 가지고 있어야 합니다. 사용자는 제한된 시간 안에 특정 작업을 수행할 수 있는 프로덕션 환경에 액세스할 권한만 부여받아야 하며, 해당 작업이 완료된 후에는 액세스 권한이 해지되어야 합니다. 사용자가 다른 프로젝트에 착수하거나 직무를 옮기는 등 액세스 권한이 더 이상 필요하지 않으면 권한은 해지되어야 합니다. 관리자 권한은 신뢰할 수 있는 소수의 관리자 그룹에만 주어져야 합니다. 권한을 정기적으로 검토하여 권한이 잘못 부여되어 있는 상황이 없도록 해야 합니다. 시스템 또는 시스템 계정에는 작업을 완료하는 데 필요한 최소 권한 집합이 부여되어야 합니다.
일반적인 안티 패턴:
-
사용자에게 기본적으로 관리자 권한을 부여합니다.
-
활동에 루트 사용자 day-to-day 사용.
-
전체 관리자 권한은 아니지만 과도하게 허용적인 정책을 생성합니다.
-
최소 권한 액세스를 허용하는지를 확인하기 위해 권한을 검토하지 않습니다.
이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 높음
구현 가이드
최소 권한의 원칙은 자격 증명에서 특정 작업을 완수하는 데 필요한 최소한의 활동만 수행하도록 허용해야 한다고 규정합니다. 이를 통해 사용 편의성, 효율성 및 보안의 균형을 이룰 수 있습니다. 이 원칙에 따라 운영하면 의도하지 않은 액세스를 제한하고 누가 어떤 리소스에 액세스했는지 추적하는 데 도움이 됩니다. IAM 사용자 및 역할에는 기본적으로 권한이 없습니다. 루트 사용자는 기본적으로 전체 액세스 권한을 가지므로 엄격하게 제어 및 모니터링하고 루트 액세스 권한이 필요한 작업에만 사용해야 합니다.
IAM 정책은 IAM 역할 또는 특정 리소스에 대한 권한을 명시적으로 부여하는 데 사용됩니다. 예를 들어 자격 증명 기반 정책을 IAM 그룹에 연결할 수 있지만 S3 버킷은 리소스 기반 정책에 의해 제어할 수 있습니다.
IAM 정책을 생성할 때 액세스를 허용하거나 거부 AWS 하려면 에 대해 참이어야 하는 서비스 작업, 리소스 및 조건을 지정할 수 있습니다. 는 액세스 범위를 줄이는 데 도움이 되는 다양한 조건을 AWS 지원합니다. 예를 들어 PrincipalOrgID
조건 키 를 사용하면 요청자가 AWS 조직의 일부가 아닌 경우 작업을 거부할 수 있습니다.
CalledVia
조건 키를 사용하여 함수 AWS CloudFormation 생성 AWS Lambda 과 같이 AWS 서비스가 사용자를 대신하여 수행하는 요청을 제어할 수도 있습니다. 다양한 정책 유형을 계층화하여 사용자의 전체 권한을 설정하고 defense-in-depth 제한해야 합니다. 나아가 어떤 조건에서 어떤 권한을 허용할지도 제한할 수도 있습니다. 예를 들어 애플리케이션 팀이 빌드하는 시스템에 대해 자체 IAM 정책을 생성하도록 허용할 수 있지만 시스템이 받을 수 있는 최대 권한을 제한하려면 권한 경계
구현 단계
-
최소 권한 정책 구현 : 사용자가 정의한 사용자의 역할 또는 함수를 반영하도록IAM 그룹 및 역할에 최소 권한이 있는 액세스 정책을 할당합니다.
-
API 사용량에 대한 기본 정책: 필요한 권한을 결정하는 한 가지 방법은 AWS CloudTrail 로그를 검토하는 것입니다. 이 검토를 통해 사용자가 내에서 실제로 수행하는 작업에 맞게 조정된 권한을 생성할 수 있습니다 AWS. IAM Access Analyzer는 활동을 기반으로 IAM 정책을 자동으로 생성할 수
있습니다. https://aws.amazon.com/blogs/security/delegate-permission-management-to-developers-using-iam-permissions-boundaries/ 조직 또는 계정 수준에서 IAM Access Advisor를 사용하여 특정 정책에 대해 마지막으로 액세스한 정보를 추적할 수 있습니다. https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
-
-
직무 역할에 따른 AWS 관리형 정책 사용을 고려하세요. 세분화된 권한 정책을 생성하기 시작할 때 어디서 시작해야 하는지 알기가 어려울 수 있습니다. AWS 에는 결제, 데이터베이스 관리자 및 데이터 과학자와 같은 일반적인 직무 역할에 대한 관리형 정책이 있습니다. 이러한 정책은 최소 권한 정책을 구현하는 방법을 결정하는 동시에 사용자의 액세스 범위를 좁히는 데 도움이 될 수 있습니다.
-
불필요한 권한 제거: 필요하지 않은 권한은 제거하고 지나치게 허용적인 정책은 줄입니다. IAM Access Analyzer 정책 생성은 권한 정책을 미세 조정하는 데 도움이 될 수 있습니다.
-
프로덕션 환경에 대한 사용자 액세스 제한: 사용자는 유효한 사용 사례가 있는 프로덕션 환경에만 액세스할 수 있어야 합니다. 사용자가 프로덕션 액세스 권한이 필요한 특정 작업을 수행한 후에는 액세스 권한을 해지해야 합니다. 프로덕션 환경에 대한 액세스를 제한하면 예기치 않게 프로덕션에 영향을 미치는 이벤트를 방지하고 의도하지 않은 액세스의 영향 범위를 줄일 수 있습니다.
-
권한 경계 고려: 권한 경계는 ID 기반 정책이 IAM엔터티에 부여할 수 있는 최대 권한을 설정하는 관리형 정책을 사용하는 기능입니다. 엔터티의 권한 경계는 자격 증명 기반 정책 및 관련 권한 경계 모두에서 허용되는 작업만 수행하도록 허용합니다.
-
권한에 대한 리소스 태그 고려: 리소스 태그를 사용하는 속성 기반 액세스 제어 모델을 사용하면 리소스 용도, 소유자, 환경 또는 기타 기준에 따라 액세스 권한을 부여할 수 있습니다. 예를 들어, 리소스 태그를 사용하여 개발 환경과 프로덕션 환경을 구분할 수 있습니다. 이러한 태그를 사용하여 개발자의 권한을 개발 환경으로 제한할 수 있습니다. 태그 지정 정책과 권한 정책을 결합하면 모든 직무에 대해 복잡한 사용자 지정 정책을 정의할 필요 없이 세분화된 리소스 액세스 제어가 가능합니다.
-
에 대한 서비스 제어 정책을 사용합니다 AWS Organizations. 서비스 제어 정책은 조직의 구성원 계정에 대해 사용 가능한 최대 권한을 중앙에서 제어합니다. 중요한 점은 서비스 제어 정책을 사용하여 구성원 계정의 루트 사용자 권한을 제한할 수 있다는 사실입니다. 또한 를 강화 AWS Control Tower하는 규범적 관리형 제어를 제공하는 를 사용하는 것도 고려해 보세요 AWS Organizations. Control Tower 내에서 자체 제어 기능을 정의할 수도 있습니다.
-
조직의 사용자 수명 주기 정책 설정: 사용자 수명 주기 정책은 사용자가 에 온보딩되거나 AWS, 작업 역할 또는 범위를 변경하거나, 더 이상 에 액세스할 필요가 없을 때 수행할 작업을 정의합니다 AWS. 사용자 수명 주기의 각 단계에서 권한 검토를 수행하여 권한이 적절하게 제한되는지 확인하고 권한이 잘못 부여되어 있는 상황이 없도록 해야 합니다.
-
권한을 검토하고 불필요한 권한을 제거하려면 정기적인 일정을 수립합니다. 사용자 액세스를 정기적으로 검토하여 사용자에게 과도하게 허용 가능한 액세스 권한이 없는지 확인해야 합니다. AWS Config
및 IAM Access Analyzer는 사용자 권한을 감사할 때 도움이 될 수 있습니다. -
작업 역할 매트릭스 설정: 작업 역할 매트릭스는 점유 AWS 공간 내에 필요한 다양한 역할 및 액세스 수준을 시각화합니다. 작업 역할 매트릭스를 바탕으로 조직 내 사용자 책임에 따라 권한을 정의하고 분리할 수 있습니다. 개별 사용자나 역할에 권한을 직접 적용하는 대신 그룹을 사용합니다.
리소스
관련 문서:
관련 비디오:
관련 예제: