권한 액세스는 의도적인 위험과 우발적인 위험으로부터 관리 모델, 관리 계정, 권한 있는 액세스 워크스테이션을 보호하는 다양한 컨트롤을 포함하여 테넌트 및 리소스에 대한 권한 액세스를 보호하는 컨트롤을 포함합니다.
PA-1: 높은 권한이 있는 사용자/관리자를 분리하고 제한
CIS Controls v8 ID
NIST SP 800-53 r4 ID
PCI-DSS ID v3.2.1
5.4, 6.8
AC-2, AC-6
7.1, 7.2, 8.1
보안 원칙: 모든 높은 비즈니스 영향 계정을 식별해야 합니다. 클라우드의 컨트롤 플레인, 관리 평면 및 데이터/워크로드 플레인에서 권한 있는/관리 계정의 수를 제한합니다.
Azure 지침: Azure 호스팅 리소스에 대한 직접 또는 간접 관리 액세스 권한으로 모든 역할을 보호해야 합니다.
Azure AD(Azure Active Directory)는 Azure의 기본 ID 및 액세스 관리 서비스입니다. Azure AD에서 가장 중요한 기본 제공 역할은 전역 관리자 및 권한 있는 역할 관리자입니다. 이 두 역할에 할당된 사용자는 관리자 역할을 위임할 수 있기 때문입니다. 이러한 권한을 통해 사용자는 Azure 환경의 모든 리소스를 직접 또는 간접적으로 읽고 수정할 수 있습니다.
전역 관리자/회사 관리자: 이 역할을 가진 사용자는 Azure AD 모든 관리 기능과 Azure AD ID를 사용하는 서비스에 액세스할 수 있습니다.
권한 있는 역할 관리자: 이 역할의 사용자는 Azure AD뿐만 아니라 Azure AD PIM(Privileged Identity Management) 내에서도 역할 할당을 관리할 수 있습니다. 또한 이 역할을 통해 PIM 및 관리 단위의 모든 측면을 관리할 수 있습니다.
Azure AD 외부에서 Azure에는 리소스 수준에서 권한 있는 액세스에 중요할 수 있는 기본 제공 역할이 있습니다.
소유자: Azure RBAC에서 역할을 할당하는 기능을 포함하여 모든 리소스를 관리할 수 있는 모든 권한을 부여합니다.
기여자: 모든 리소스를 관리할 수 있는 모든 권한 권한을 부여하지만 Azure RBAC에서 역할을 할당하거나 Azure Blueprints에서 할당을 관리하거나 이미지 갤러리를 공유할 수는 없습니다.
사용자 액세스 관리자: Azure 리소스에 대한 사용자 액세스를 관리할 수 있습니다.
참고: 특정 권한이 할당된 권한이 있는 리소스 수준 또는 Azure AD 수준에서 사용자 지정 역할을 사용하는 경우 관리해야 하는 다른 중요한 역할이 있을 수 있습니다.
또한 EA(Azure 기업계약) 포털에서 다음 세 가지 역할을 가진 사용자는 Azure 구독을 직접 또는 간접적으로 관리하는 데 사용할 수 있으므로 제한해야 합니다.
계정 소유자: 이 역할을 가진 사용자는 구독 만들기 및 삭제를 포함하여 구독을 관리할 수 있습니다.
엔터프라이즈 관리자: 이 역할로 할당된 사용자는 EA(포털 사용자)를 관리할 수 있습니다.
부서 관리자: 이 역할로 할당된 사용자는 부서 내에서 계정 소유자를 변경할 수 있습니다.
마지막으로, 중요 비즈니스용 시스템에 에이전트가 설치된 Active Directory 도메인 컨트롤러, 보안 도구 및 시스템 관리 도구와 같이 중요 비즈니스용 자산에 대한 관리 액세스 권한이 있는 다른 관리, ID 및 보안 시스템의 권한 있는 계정도 제한해야 합니다. 관련 관리 및 보안 시스템을 손상시키는 공격자는 중요 비즈니스용 자산을 손상시키기 위해 관련 시스템을 즉시 무기화할 수 있습니다.
AWS 지침: AWS 호스팅 리소스에 대한 직접 또는 간접 관리 액세스 권한으로 모든 역할을 보호해야 합니다.
권한 있는/관리 사용자를 보호해야 하는 경우는 다음과 같습니다.
루트 사용자: 루트 사용자는 AWS 계정에서 가장 높은 수준의 권한 있는 계정입니다. 루트 계정은 매우 제한되며 응급 상황에서만 사용해야 합니다. PA-5의 응급 액세스 제어(긴급 액세스 설정)를 참조하세요.
권한 있는 권한 정책이 있는 IAM ID(사용자, 그룹, 역할): AdministratorAccess와 같은 권한 정책을 사용하여 할당된 IAM ID는 AWS 서비스 및 리소스에 대한 모든 권한을 가질 수 있습니다.
AWS의 ID 공급자로 Azure Active Directory(Azure AD)를 사용하는 경우 Azure AD 권한 있는 역할을 관리하기 위한 Azure 지침을 참조하세요.
비즈니스에 중요한 시스템에 에이전트가 설치된 AWS Cognito, 보안 도구 및 시스템 관리 도구와 같은 중요 비즈니스용 자산에 대한 관리 액세스 권한이 있는 다른 관리, ID 및 보안 시스템에서 권한 있는 계정도 제한해야 합니다. 관련 관리 및 보안 시스템을 손상시키는 공격자는 중요 비즈니스용 자산을 손상시키기 위해 관련 시스템을 즉시 무기화할 수 있습니다.
GCP 지침: GCP 호스팅 리소스에 대한 직접 또는 간접 관리 액세스 권한이 있는 모든 역할을 보호해야 합니다.
Google Cloud에서 가장 중요한 기본 제공 역할은 슈퍼 관리자입니다. 슈퍼 관리자는 관리 콘솔에서 모든 작업을 수행할 수 있으며 취소할 수 없는 관리 권한이 있습니다. 일상적인 관리를 위해 슈퍼 관리자 계정을 사용하지 않도록 하는 것이 좋습니다.
기본 역할은 매우 관대한 레거시 역할이며 모든 Google Cloud 리소스에서 광범위한 액세스 권한을 부여하므로 기본 역할은 프로덕션 환경에서 사용되지 않는 것이 좋습니다. 기본 역할에는 뷰어, 편집기 및 소유자 역할이 포함됩니다. 대신 미리 정의된 역할 또는 사용자 지정 역할을 사용하는 것이 좋습니다. 주목할 만한 권한 있는 미리 정의된 역할은 다음과 같습니다.
조직 관리자: 이 역할을 가진 사용자는 IAM 정책을 관리하고 조직, 폴더 및 프로젝트에 대한 organization 정책을 볼 수 있습니다.
조직 정책 관리자: 이 역할을 가진 사용자는 조직 정책을 설정하여 organization 클라우드 리소스 구성에 적용하려는 제한을 정의할 수 있습니다.
조직 역할 관리자: 이 역할을 가진 사용자는 아래의 organization 및 프로젝트의 모든 사용자 지정 역할을 관리할 수 있습니다.
보안 관리: 이 역할을 가진 사용자는 모든 IAM 정책을 가져와서 설정할 수 있습니다.
관리 거부: 이 역할을 가진 사용자에게는 IAM 거부 정책을 읽고 수정할 수 있는 권한이 있습니다.
또한 미리 정의된 특정 역할에는 organization, 폴더 및 프로젝트 수준에서 권한 있는 IAM 권한이 포함됩니다. 이러한 IAM 권한은 다음과 같습니다.
organizationAdmin
folderIAMAdmin
projectIAMAdmin
또한 다양한 프로젝트의 계정에 역할을 할당하거나 Google Kubernetes 엔진을 사용하여 이진 권한 부여를 활용하여 업무 분리를 구현합니다.
마지막으로, 중요 비즈니스용 시스템에 에이전트가 설치된 클라우드 DNS, 보안 도구 및 시스템 관리 도구와 같은 중요 비즈니스용 자산에 대한 관리 액세스 권한이 있는 다른 관리, ID 및 보안 시스템의 권한 있는 계정도 제한해야 합니다. 관련 관리 및 보안 시스템을 손상시키는 공격자는 중요 비즈니스용 자산을 손상시키기 위해 관련 시스템을 즉시 무기화할 수 있습니다.
보안 원칙: 스탠딩 권한을 만드는 대신 JIT(Just-In-Time) 메커니즘을 사용하여 다양한 리소스 계층에 대한 권한 있는 액세스를 할당합니다.
Azure 지침: PIM(Azure AD Privileged Identity Management)을 사용하여 Azure 리소스 및 Azure AD JIT(Just-In-Time) 권한 있는 액세스를 사용하도록 설정합니다. JIT는 사용자가 권한 있는 작업을 수행하기 위해 임시 사용 권한을 받는 모델이며, 악의적 또는 권한이 없는 사용자가 권한이 만료된 후 액세스 권한을 획득하는 것을 방지합니다. 액세스 권한은 사용자에게 필요한 경우에만 부여됩니다. 또한 PIM은 Azure AD 조직에서 의심스럽거나 안전하지 않은 활동이 있을 때 보안 경고를 생성할 수 있습니다.
클라우드용 Microsoft Defender의 VM 액세스용 JIT(Just-In-Time) 기능을 사용하여 중요한 VM(가상 머신) 관리 포트에 대한 인바운드 트래픽을 제한합니다. 이렇게 하면 사용자가 필요할 때만 VM에 대한 권한 있는 액세스 권한이 부여됩니다.
AWS 지침: AWS STS(AWS 보안 토큰 서비스)를 사용하여 AWS API를 통해 리소스에 액세스하는 임시 보안 자격 증명을 만듭니다. 임시 보안 자격 증명은 IAM 사용자가 사용할 수 있는 장기 액세스 키 자격 증명과 거의 동일하게 작동하며 다음과 같은 차이점이 있습니다.
임시 보안 자격 증명은 몇 분에서 몇 시간까지의 단기 수명을 갖습니다.
임시 보안 자격 증명은 사용자와 함께 저장되지 않지만 동적으로 생성되고 요청된 경우 사용자에게 제공됩니다.
GCP 지침: IAM 조건부 액세스를 사용하여 클라우드 ID 사용자에게 부여되는 허용 정책에서 조건부 역할 바인딩을 사용하여 리소스에 대한 임시 액세스를 만듭니다. 특정 리소스에 액세스하기 위한 시간 기반 컨트롤을 적용하도록 날짜/시간 특성을 구성합니다. 임시 액세스는 몇 분에서 몇 시간까지의 단기 수명을 가지거나 요일 또는 시간에 따라 부여될 수 있습니다.
보안 원칙: 권한 있는 계정 자격에 대한 정기적인 검토를 수행합니다. 계정에 부여된 액세스 권한이 컨트롤 플레인, 관리 평면 및 워크로드 관리에 유효한지 확인합니다.
Azure 지침: Azure 테넌트, Azure 서비스, VM/IaaS, CI/CD 프로세스, 엔터프라이즈 관리 및 보안 도구를 포함하여 Azure의 모든 권한 있는 계정 및 액세스 권한을 검토합니다.
Azure AD 액세스 검토를 사용하여 Azure AD 역할, Azure 리소스 액세스 역할, 그룹 멤버 자격 및 엔터프라이즈 애플리케이션에 대한 액세스를 검토합니다. Azure AD 보고는 부실 계정 또는 특정 시간 동안 사용되지 않은 계정을 검색하는 데 도움이 되는 로그를 제공할 수도 있습니다.
또한 Azure AD Privileged Identity Management는 특정 역할에 대해 과도한 수의 관리자 계정이 만들어질 때 경고하고 부실하거나 부적절하게 구성된 관리자 계정을 식별하도록 구성할 수 있습니다.
AWS 지침: AWS 계정, 서비스, VM/IaaS, CI/CD 프로세스, 엔터프라이즈 관리 및 보안 도구를 포함하여 AWS의 모든 권한 있는 계정 및 액세스 권한을 검토합니다.
IAM Access Advisor, Access Analyzer 및 자격 증명 보고서를 사용하여 리소스 액세스 역할, 그룹 멤버 자격 및 엔터프라이즈 애플리케이션에 대한 액세스를 검토합니다. IAM Access Analyzer 및 자격 증명 보고서 보고는 부실 계정 또는 특정 시간 동안 사용되지 않은 계정을 검색하는 데 도움이 되는 로그를 제공할 수도 있습니다.
AWS의 ID 공급자로 Azure Active Directory(Azure AD)를 사용하는 경우 Azure AD 액세스 검토를 사용하여 권한 있는 계정을 검토하고 정기적으로 권한 있는 계정에 액세스합니다.
보안 원칙: 긴급 상황에서 중요한 클라우드 인프라(예: ID 및 액세스 관리 시스템)에서 실수로 잠기지 않도록 긴급 액세스를 설정합니다.
비상 액세스 계정은 거의 사용되지 않아야 하며 손상될 경우 조직에 큰 피해를 줄 수 있지만 필요한 경우 몇 가지 시나리오에서 조직에 대한 가용성도 매우 중요합니다.
Azure 지침: 실수로 Azure AD organization 잠기지 않도록 하려면 일반 관리 계정을 사용할 수 없는 경우 액세스를 위해 긴급 액세스 계정(예: 전역 관리자 역할이 있는 계정)을 설정합니다. 응급 액세스 계정은 일반적으로 권한이 높으며 특정 사용자에게 할당되면 안 됩니다. 응급 액세스 계정은 일반 관리 계정을 사용할 수 없는 "비상" 시나리오의 긴급한 상황으로 제한됩니다.
응급 액세스 계정의 자격 증명(예: 암호, 인증서 또는 스마트 카드)을 안전하게 유지하고 비상시에만 사용할 권한이 있는 사용자에게만 알립니다. 또한 이러한 이중 컨트롤(예: 자격 증명을 두 조각으로 분할하고 개별 사용자에게 제공)과 같은 추가 컨트롤을 사용하여 이 프로세스의 보안을 강화할 수 있습니다. 또한 로그인 및 감사 로그를 모니터링하여 권한이 부여된 경우에만 긴급 액세스 계정이 사용되는지 확인해야 합니다.
AWS 지침: AWS "루트" 계정은 정기적인 관리 작업에 사용하면 안 됩니다. "루트" 계정은 높은 권한이 있으므로 특정 개인에게 할당해서는 안 됩니다. 일반 관리 계정을 사용할 수 없는 경우 사용은 응급 또는 "중단" 시나리오로만 제한되어야 합니다. 일상적인 관리 작업의 경우 별도의 권한 있는 사용자 계정을 사용하고 IAM 역할을 통해 적절한 권한을 할당해야 합니다.
또한 루트 계정에 대한 자격 증명(예: 암호, MFA 토큰 및 액세스 키)이 안전하게 유지되고 응급 상황에서만 사용할 권한이 있는 개인에게만 알려야 합니다. 루트 계정에 대해 MFA를 사용하도록 설정해야 하며 이중 컨트롤(예: 자격 증명을 두 조각으로 분할하고 개별 사용자에게 제공)과 같은 추가 컨트롤을 사용하여 이 프로세스의 보안을 강화할 수도 있습니다.
또한 CloudTrail 또는 EventBridge에서 로그인 및 감사 로그를 모니터링하여 루트 액세스 계정이 권한이 부여된 경우에만 사용되는지 확인해야 합니다.
GCP 지침: Google Cloud Identity 슈퍼 관리자 계정은 정기적인 관리 작업에 사용하면 안 됩니다. 슈퍼 관리자 계정은 높은 권한이 있으므로 특정 개인에게 할당해서는 안 됩니다. 일반 관리 계정을 사용할 수 없는 경우 사용은 응급 또는 "중단" 시나리오로만 제한되어야 합니다. 일상적인 관리 작업의 경우 별도의 권한 있는 사용자 계정을 사용하고 IAM 역할을 통해 적절한 권한을 할당해야 합니다.
또한 슈퍼 관리자 계정에 대한 자격 증명(예: 암호, MFA 토큰 및 액세스 키)이 안전하게 유지되고 응급 상황에서만 사용할 수 있는 권한이 있는 개인에게만 알려야 합니다. 슈퍼 관리자 계정에 대해 MFA를 사용하도록 설정해야 하며 이중 컨트롤(예: 자격 증명을 두 조각으로 분할하고 개별 사용자에게 제공)과 같은 추가 컨트롤을 사용하여 이 프로세스의 보안을 강화할 수도 있습니다.
또한 클라우드 감사 로그에서 로그인 및 감사 로그를 모니터링하거나 정책 분석기를 쿼리하여 슈퍼 관리자 계정이 권한이 부여된 경우에만 사용되는지 확인해야 합니다.
보안 원칙: 보안, 격리된 워크스테이션은 관리자, 개발자 및 중요한 서비스 운영자와 같은 중요한 역할의 보안에 매우 중요합니다.
Azure 지침: Azure Active Directory, Microsoft Defender 및/또는 Microsoft Intune 사용하여 권한 있는 작업을 위해 온-프레미스 또는 Azure에서 PAW(권한 있는 액세스 워크스테이션)를 배포합니다. 강력한 인증, 소프트웨어 및 하드웨어 기준, 제한된 논리 및 네트워크 액세스를 포함하여 보안 구성을 적용하려면 PAW를 중앙에서 관리해야 합니다.
가상 네트워크 내에서 프로비저닝할 수 있는 완전히 플랫폼에 의해 관리되는 PaaS 서비스인 Azure Bastion을 사용할 수도 있습니다. Azure Bastion을 사용하면 웹 브라우저를 사용하여 Azure Portal 직접 가상 머신에 RDP/SSH를 연결할 수 있습니다.
AWS 지침: AWS Systems Manager의 세션 관리자를 사용하여 EC2 instance 대한 액세스 경로(연결 세션) 또는 권한 있는 작업을 위해 AWS 리소스에 대한 브라우저 세션을 만듭니다. 세션 관리자는 포트 전달을 통해 대상 호스트에 RDP, SSH 및 HTTPS 연결을 허용합니다.
Azure Active Directory, Microsoft Defender 및/또는 Microsoft Intune 통해 중앙에서 관리되는 PAW(권한 있는 액세스 워크스테이션)를 배포하도록 선택할 수도 있습니다. 중앙 관리는 강력한 인증, 소프트웨어 및 하드웨어 기준, 제한된 논리 및 네트워크 액세스를 포함하여 보안 구성을 적용해야 합니다.
GCP 지침: IAP(Identity-Aware 프록시) 데스크톱을 사용하여 권한 있는 작업에 대한 컴퓨팅 instance 대한 액세스 경로(연결 세션)를 만듭니다. IAP Desktop은 포트 전달을 통해 대상 호스트에 RDP 및 SSH 연결을 허용합니다. 또한 외부에 연결된 Linux 컴퓨팅 인스턴스는 Google Cloud 콘솔을 통해 SSH-in-browser를 통해 연결할 수 있습니다.
Google Workspace Endpoint Management 또는 Microsoft 솔루션(Azure Active Directory, Microsoft Defender 및/또는 Microsoft Intune)을 통해 중앙에서 관리되는 PAW(권한 있는 액세스 워크스테이션)를 배포하도록 선택할 수도 있습니다. 중앙 관리는 강력한 인증, 소프트웨어 및 하드웨어 기준, 제한된 논리 및 네트워크 액세스를 포함하여 보안 구성을 적용해야 합니다.
정의된 매개 변수를 사용하여 신뢰할 수 있는 환경에 안전하게 액세스하기 위한 베스천 호스트를 만들 수도 있습니다.
보안 원칙: 충분한 관리(최소 권한) 원칙에 따라 세분화된 수준에서 권한을 관리합니다. RBAC(역할 기반 액세스 제어)와 같은 기능을 사용하여 역할 할당을 통해 리소스 액세스를 관리합니다.
Azure 지침: Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 역할 할당을 통해 Azure 리소스 액세스를 관리합니다. RBAC를 통해 사용자, 그룹, 서비스 주체 및 관리 ID에 역할을 할당할 수 있습니다. 특정 리소스에 대해 미리 정의된 기본 제공 역할이 있으며 이러한 역할은 Azure CLI, Azure PowerShell 및 Azure Portal과 같은 도구를 통해 쿼리하거나 인벤토리에 포함할 수 있습니다.
Azure RBAC를 통해 리소스에 할당하는 권한은 항상 역할에 필요한 권한으로 제한되어야 합니다. 제한된 권한은 Azure AD PIM(Privileged Identity Management)의 JIT(Just-In-Time) 방법을 보완하며 이러한 권한을 주기적으로 검토해야 합니다. 필요한 경우 PIM을 사용하여 사용자가 지정된 시작 및 종료 날짜 내에서만 역할을 활성화할 수 있는 역할 할당의 조건인 시간 제한 할당을 정의할 수도 있습니다.
참고: Azure 기본 제공 역할을 사용하여 권한을 할당하고 필요할 때만 사용자 지정 역할을 만듭니다.
AWS 지침: AWS 정책을 사용하여 AWS 리소스 액세스를 관리합니다. ID 기반 정책, 리소스 기반 정책, 권한 경계, AWS 조직 SCP(서비스 제어 정책), Access Control 목록 및 세션 정책의 6가지 유형이 있습니다. 일반적인 사용 권한 사용 사례에 AWS 관리 정책을 사용할 수 있습니다. 그러나 관리되는 정책에는 사용자에게 할당해서는 안 되는 과도한 권한이 포함될 수 있습니다.
또한 AWS ABAC(특성 기반 액세스 제어)를 사용하여 IAM 엔터티(사용자 또는 역할) 및 AWS 리소스를 포함하여 IAM 리소스에 연결된 특성(태그)에 따라 권한을 할당할 수도 있습니다.
GCP 지침: Google 클라우드 IAM 정책을 사용하여 역할 할당을 통해 GCP 리소스 액세스를 관리합니다. 일반적인 사용 권한 사용 사례에 Google Cloud의 미리 정의된 역할을 사용할 수 있습니다. 그러나 미리 정의된 역할에는 사용자에게 할당해서는 안 되는 과도한 권한이 포함될 수 있습니다.
또한 IAM 추천자와 함께 정책 인텔리전스를 사용하여 계정에서 과도한 권한을 식별하고 제거합니다.