Az - Basic Information

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배우세요!

HackTricks를 지원하는 다른 방법:

조직 계층

관리 그룹

조직이 여러 Azure 구독을 보유하는 경우, 구독에 대한 액세스, 정책 및 규정을 효율적으로 관리해야 할 수 있습니다. 관리 그룹구독 위에 존재하는 관리 범위를 제공합니다.

10,000개의 관리 그룹을 단일 디렉터리에서 지원하며 관리 그룹 트리는 최대 여섯 단계의 깊이를 지원할 수 있습니다.

문서에서 각 디렉터리에는 루트 관리 그룹이라고 하는 단일 최상위 관리 그룹이 제공됩니다. 루트 관리 그룹은 모든 관리 그룹과 구독이 하위로 접히도록 계층 구조에 내장되어 있습니다. 이 루트 관리 그룹을 사용하면 디렉터리 수준에서 전역 정책 및 Azure 역할 할당을 적용할 수 있습니다. Azure AD Global Administrator는 초기에 이 루트 그룹의 사용자 액세스 관리자 역할로 승격해야 합니다. 액세스를 승격한 후 관리자는 다른 디렉터리 사용자 또는 그룹에 Azure 역할을 할당하여 계층 구조를 관리할 수 있습니다. 관리자로서 루트의 소유자로 자신의 계정을 할당할 수 있습니다.

루트 관리 그룹은 다른 관리 그룹과 달리 이동하거나 삭제할 수 없습니다.

관리 그룹을 사용하면 어떤 유형의 구독이든 규모에 맞는 엔터프라이즈급 관리를 제공합니다. 그러나 단일 관리 그룹 내의 모든 구독동일한 Azure Active Directory (Azure AD) 테넌트를 신뢰해야 합니다.

Azure 구독

Azure에서 구독은 비즈니스 또는 기술 리소스를 프로비저닝하기 위한 논리적 컨테이너로 작동합니다. 이 컨테이너는 가상 머신 (VM), 데이터베이스 등과 같은 리소스의 세부 정보를 유지합니다. VM과 같은 Azure 리소스를 생성할 때 해당 리소스와 연결된 구독이 지정됩니다. 이 구조는 역할 기반 액세스 제어 메커니즘을 활용하여 액세스 위임을 용이하게 합니다.

리소스 그룹

문서에서: 리소스 그룹은 Azure 솔루션에 대한 관련 리소스를 보유하는 컨테이너입니다. 리소스 그룹에는 솔루션의 모든 리소스 또는 그룹으로 관리하려는 리소스만 포함될 수 있습니다. 일반적으로 동일한 수명 주기를 공유하는 리소스를 동일한 리소스 그룹에 추가하여 쉽게 배포, 업데이트 및 삭제할 수 있습니다.

모든 리소스리소스 그룹 내에 있어야하며 하나의 그룹에만 속할 수 있으며 리소스 그룹이 삭제되면 그 안에 있는 모든 리소스도 삭제됩니다.

관리 단위

문서에서: 관리 단위를 사용하면 조직을 원하는 단위로 세분화한 다음 해당 단위의 특정 관리자할당할 수 있습니다. 예를 들어 대학교의 각 학교 관리자에게 권한을 위임하여 공학 학부에서만 액세스를 제어하고 사용자를 관리하고 정책을 설정할 수 있습니다.

사용자, 그룹장치만이 관리 단위의 구성원이 될 수 있습니다.

따라서 관리 단위에는 일부 구성원이 포함되고 다른 주체들이 해당 관리 단위의 구성원을 관리할 수 있는 권한이 할당됩니다.

Azure vs Azure AD vs Azure AD 도메인 서비스

Azure ADAzure 내부의 서비스입니다. Azure는 Microsoft의 클라우드 플랫폼이며 Azure AD는 Azure의 기업 신원 서비스입니다. 또한 Azure AD는 Windows Active Directory와 다릅니다, 완전히 다른 방식으로 작동하는 신원 서비스입니다. Windows Active Directory 환경에 도메인 컨트롤러를 실행하려면 Azure AD 도메인 서비스를 사용해야 합니다.

주체

Azure는 다양한 유형의 주체를 지원합니다:

  • 사용자: 자격 증명을 사용하여 액세스할 수 있는 일반 사용자입니다.

  • 그룹: 함께 관리되는 주체 그룹입니다. 그룹에 부여된 권한은 그 구성원에게 상속됩니다.

  • 서비스 주체/기업 응용 프로그램: 응용 프로그램, 호스팅 서비스 및 자동화 도구에서 Azure 리소스에 액세스하기 위해 생성된 신원입니다. 이 액세스는 서비스 주체에 할당된 역할에 의해 제한되어 어떤 리소스에 액세스할 수 있는지 및 어느 수준에서 제어할 수 있습니다. 보안상의 이유로 자동화 도구에 서비스 주체를 사용하는 것이 항상 권장됩니다.

서비스 주체를 생성할 때 암호 인증 또는 인증서 인증 중 선택할 수 있습니다.

  • 암호 인증을 선택하면 (기본값), 생성된 암호를 다시 액세스할 수 없으므로 저장해야 합니다.

  • 인증서 인증을 선택하면 응용 프로그램이 개인 키에 대한 액세스를 갖도록 해야 합니다.

  • 관리 ID (메타데이터 자격 증명): Azure Active Directory의 관리 ID는 응용 프로그램의 신원을 자동으로 관리하는 솔루션을 제공합니다. 이러한 신원은 Azure Active Directory (Azure AD) 인증과 호환되는 리소스에 연결하기 위해 응용 프로그램에서 사용됩니다. 관리 ID를 활용하면 응용 프로그램이 자격 증명을 직접 처리할 필요 없이 Azure AD 토큰을 안전하게 보호할 수 있습니다. 관리 ID에는 두 가지 유형이 있습니다:

  • 시스템 할당: 일부 Azure 서비스는 서비스 인스턴스에 직접 관리 ID를 활성화할 수 있습니다. 시스템 할당 관리 ID를 활성화하면 Azure AD에 신원이 생성됩니다. 이 신원은 해당 서비스 인스턴스의 수명 주기에 묶입니다. 리소스가 삭제되면 Azure가 자동으로 신원을 삭제합니다. 설계상, 이 신원은 Azure AD에서 토큰을 요청하기 위해 이 신원을 사용할 수 있는 것은 해당 Azure 리소스뿐입니다.

  • 사용자 할당: 독립적인 Azure 리소스로 관리 ID를 생성할 수도 있습니다. 사용자 할당 관리 ID를 생성하고 Azure 서비스의 하나 이상의 인스턴스에 할당할 수 있습니다 (여러 리소스). 사용자 할당 관리 ID의 경우 리소스를 사용하는 신원과 별도로 관리됩니다.

역할 및 권한

역할범위주체에게 할당됩니다: 주체 -[역할 소유]->(범위)

그룹에 할당된 역할그룹의 모든 구성원에게 상속됩니다.

할당된 역할이 속한 범위에 따라, 해당 역할은 범위 컨테이너 내의 다른 리소스상속될 수 있습니다. 예를 들어, 사용자 A가 구독에 대한 역할을 가지고 있다면, 해당 사용자는 해당 구독 내의 모든 리소스 그룹 및 리소스 그룹 내의 모든 리소스에 대해 해당 역할을 가질 것입니다.

클래식 역할

소유자

  • 모든 리소스에 대한 전체 액세스

  • 다른 사용자의 액세스 관리 가능

모든 리소스 유형

기여자

  • 모든 리소스에 대한 전체 액세스

  • 액세스 관리 불가능

모든 리소스 유형

리더

• 모든 리소스 보기

모든 리소스 유형

사용자 액세스 관리자

  • 모든 리소스 보기

  • 다른 사용자의 액세스 관리 가능

모든 리소스 유형

내장 역할

문서에서: Azure 역할 기반 액세스 제어 (Azure RBAC)에는 사용자, 그룹, 서비스 주체 및 관리 식별자에 할당할 수 있는 여러 Azure 내장 역할이 있습니다. 역할 할당은 Azure 리소스에 대한 액세스를 제어하는 방법입니다. 내장 역할이 조직의 특정 요구 사항을 충족하지 못하는 경우, 직접 Azure 사용자 정의 역할를 만들 수 있습니다.

내장 역할은 해당 리소스에만 적용됩니다. 예를 들어, Compute 리소스에 대한 2가지 내장 역할 예를 확인하십시오:

디스크 백업 수행을 위한 백업 보관함 권한 제공

3e5e47e6-65f7-47ef-90b5-e5dd4d455f24

포털에서 가상 머신 보기 및 일반 사용자로 로그인

fb879df8-f326-4884-b1cf-06f3ad86be52

이러한 역할은 로직 컨테이너 (관리 그룹, 구독 및 리소스 그룹)에도 할당할 수 있으며, 영향을 받는 주체는 해당 컨테이너 내의 리소스에 대해 해당 역할을 가질 것입니다.

사용자 정의 역할

Azure는 사용자가 필요로 하는 권한으로 사용자 정의 역할을 만들 수 있습니다.

권한 거부

  • 주체가 리소스에 대한 액세스 권한을 갖기 위해서는 반드시 해당 권한을 부여하는 명시적 역할이 있어야 합니다.

  • 명시적 거부 역할 할당이 우선하여 권한을 부여하는 역할을 무시합니다.

글로벌 관리자

글로벌 관리자 역할을 가진 사용자는 '사용자 액세스 관리자 Azure 역할을 루트 관리 그룹으로 승격'할 수 있습니다. 이는 글로벌 관리자가 모든 Azure 구독 및 관리 그룹의 액세스를 관리할 수 있음을 의미합니다. 이 승격은 다음 페이지에서 수행할 수 있습니다: https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties

Azure 정책

Azure 정책은 Microsoft Azure의 규칙 및 규정으로, 조직 표준을 관리하고 강제하며 규모에 맞게 준수를 평가하는 데 도움이 되는 클라우드 컴퓨팅 서비스입니다. 이러한 정책은 Azure 리소스에 대해 다양한 규칙을 강제하여 해당 리소스가 기업 표준 및 서비스 수준 계약을 준수하도록 합니다.

Azure 정책은 클라우드 거버넌스 및 보안에 중요하며, 리소스가 적절하고 효율적으로 사용되며 외부 규정 및 내부 정책을 준수하는 데 도움이 됩니다. 일부 예시:

  1. 특정 Azure 지역 준수 보장: 이 정책은 모든 리소스가 특정 Azure 지역에 배포되도록 보장합니다. 예를 들어, GDPR 준수를 위해 회사는 모든 데이터가 유럽에 저장되도록 보장할 수 있습니다.

  2. 이름 표준 강제: 정책은 Azure 리소스의 이름 규칙을 강제할 수 있습니다. 이는 이름에 따라 리소스를 구성하고 식별하기 쉽게 도와줍니다.

  3. 특정 리소스 유형 제한: 이 정책은 특정 유형의 리소스 생성을 제한할 수 있습니다. 예를 들어, 정책을 설정하여 특정 VM 크기와 같은 비용이 많이 드는 리소스 유형의 생성을 방지할 수 있습니다.

  4. 태깅 정책 강제: 태그는 리소스 관리에 사용되는 Azure 리소스와 관련된 키-값 쌍입니다. 정책은 모든 리소스에 특정 태그가 있어야 하거나 특정 값이 있어야 한다는 것을 강제할 수 있습니다. 이는 비용 추적, 소유권 또는 리소스 분류에 유용합니다.

  5. 리소스에 대한 공개 액세스 제한: 정책은 저장소 계정이나 데이터베이스와 같은 특정 리소스가 공개 엔드포인트를 갖지 않도록 강제할 수 있어, 조직의 네트워크 내에서만 액세스할 수 있도록 보장합니다.

  6. 보안 설정 자동 적용: 정책은 리소스에 보안 설정을 자동으로 적용할 수 있습니다. 예를 들어, 모든 VM에 특정 네트워크 보안 그룹을 적용하거나 모든 저장소 계정이 암호화를 사용하도록 보장할 수 있습니다.

Azure 정책은 Azure 계층 구조의 어느 수준에도 연결될 수 있지만, 일반적으로 루트 관리 그룹이나 다른 관리 그룹에서 사용됩니다.

권한 범위

Azure에서 권한은 계층 구조의 어느 부분에나 할당될 수 있습니다. 이는 관리 그룹, 구독, 리소스 그룹 및 개별 리소스를 포함합니다. 권한은 할당된 엔티티의 포함된 리소스에 의해 상속됩니다.

이러한 계층 구조는 효율적이고 확장 가능한 액세스 권한 관리를 가능하게 합니다.

Azure RBAC 대 ABAC

RBAC (역할 기반 액세스 제어)은 이전 섹션에서 이미 본 것입니다: 주체에게 역할을 할당하여 액세스를 부여하는 것입니다. 그러나 경우에 따라 더 세분화된 액세스 관리 또는 수백 개의 역할 할당간소화하고 싶을 수 있습니다.

Azure ABAC (속성 기반 액세스 제어)는 특정 조치의 맥락에서 속성에 기반한 역할 할당 조건을 추가하여 Azure RBAC를 보완합니다. _역할 할당 조건_은 역할 할당에 선택적으로 추가할 수 있는 추가 확인 사항으로, 더 세분화된 액세스 제어를 제공합니다. 조건은 역할 정의 및 역할 할당의 일부로 부여된 권한을 필터링합니다. 예를 들어, 특정 태그가 있는 객체를 읽기 위해 조건을 추가할 수 있습니다. 조건을 사용하여 특정 리소스에 대한 액세스를 명시적으로 거부할 수는 없습니다.

기본 사용자 권한

기본 사용자는 AzureAD의 일부를 열거할 수 있는 몇 가지 기본 권한을 갖습니다:

  • 모든 사용자, 그룹, 응용 프로그램, 장치, 역할, 구독 및 공개 속성을 읽기

  • 게스트 초대 (비활성화 가능)

  • 보안 그룹 생성

  • 숨겨지지 않은 그룹 멤버십 읽기

  • 소유 그룹에 게스트 추가

  • 새 응용 프로그램 생성 (비활성화 가능)

  • 최대 50개의 장치를 Azure에 추가

전체 사용자의 기본 권한 목록을 문서에서 확인할 수 있습니다. 또한 해당 목록에서 게스트의 기본 권한 목록도 확인할 수 있습니다.

Azure 리소스를 열거하려면 사용자가 해당 권한을 명시적으로 부여받아야 합니다.

특권 식별 관리 (PIM)

Azure의 특권 식별 관리 (PIM)은 Azure Active Directory 및 Azure에서 특권 액세스를 관리, 제어 및 모니터링하는 도구입니다. 즉시 및 시간 제한된 특권 액세스를 제공하고, 승인 워크플로를 강제하며 추가 인증을 요구함으로써 보안을 강화합니다. 이 접근 방식은 특정 기간 동안만 필요할 때에만 특권이 부여되어 권한이 불법적으로 액세스되는 위험을 최소화합니다.

인증 토큰

OIDC에서 사용되는 세 가지 유형의 토큰이 있습니다:

  • 액세스 토큰: 클라이언트가 이 토큰을 리소스 서버에 제공하여 리소스에 액세스합니다. 이는 특정 사용자, 클라이언트 및 리소스 조합에 대해서만 사용할 수 있으며 만료까지 폐기할 수 없습니다 - 기본적으로 1시간입니다. 이를 사용하여 감지가 낮습니다.

  • ID 토큰: 클라이언트가 인가 서버로부터 이 토큰을 수신합니다. 사용자에 대한 기본 정보가 포함되어 있습니다. 특정 사용자 및 클라이언트에 바인딩됩니다.

  • 새로 고침 토큰: 액세스 토큰과 함께 클라이언트에 제공됩니다. 새로운 액세스 및 ID 토큰을 가져오는 데 사용됩니다. 특정 사용자 및 클라이언트에 바인딩되며 폐기할 수 있습니다. 비활성화된 새로 고침 토큰의 기본 만료 기간은 90일이며 활성 토큰의 경우 만료 기간이 없습니다.

조건부 액세스에 대한 정보는 JWT 내에 저장됩니다. 따라서 허용된 IP 주소에서 토큰을 요청하면 해당 IP가 토큰에 저장되어 나중에 허용되지 않은 IP에서 해당 리소스에 액세스할 수 있습니다.

액세스 토큰을 요청하고 해당 토큰으로 로그인하는 다양한 방법을 학습하려면 다음 페이지를 확인하세요:

pageAz - AzureAD (AAD)

가장 일반적인 API 엔드포인트는 다음과 같습니다:

  • Azure Resource Manager (ARM): management.azure.com

  • Microsoft Graph: graph.microsoft.com (사용이 중단된 Azure AD Graph는 graph.windows.net)

참고 자료

最終更新