이벤트에 대한 액세스 제어

완료됨

Azure Event Hubs는 Microsoft Entra ID와 SAS(공유 액세스 서명)를 모두 지원하여 인증 및 권한 부여를 모두 처리합니다. Azure는 Microsoft Entra ID 및 OAuth를 사용하여 Event Hubs 데이터에 대한 액세스 권한을 부여하기 위해 다음과 같은 Azure 기본 제공 역할을 제공합니다.

관리 ID를 사용하여 액세스 권한 부여

애플리케이션에서 관리 ID를 사용하여 Event Hubs 서비스에 대한 요청을 승인하려면 해당 관리 ID에 대한 Azure 역할 기반 액세스 제어 설정을 구성해야 합니다. Azure Event Hubs는 Event Hubs에서 전송 및 읽기 권한을 포함하는 Azure 역할을 정의합니다. Azure 역할이 관리 ID에 할당되면 관리 ID에 적절한 범위에서 Event Hubs 데이터에 대한 액세스 권한이 부여됩니다.

Microsoft ID 플랫폼을 사용하여 액세스 권한 부여

Event Hubs와 함께 Microsoft Entra ID를 사용하는 주요 이점은 자격 증명을 더 이상 코드에 저장할 필요가 없다는 것입니다. 대신 Microsoft ID 플랫폼에서 OAuth 2.0 액세스 토큰을 요청할 수 있습니다. Microsoft Entra는 애플리케이션을 실행하는 보안 주체(사용자, 그룹 또는 서비스 주체)를 인증합니다. 인증이 성공하면 Microsoft Entra ID는 액세스 토큰을 애플리케이션에 반환하고, 애플리케이션은 액세스 토큰을 사용하여 Azure Event Hubs에 대한 요청을 권한을 부여할 수 있습니다.

공유 액세스 서명을 사용하여 Event Hubs 게시자에 대한 액세스 권한 부여

이벤트 게시자는 Event Hubs에 대한 가상 엔드포인트를 정의합니다. 게시자는 이벤트 허브에 메시지를 보내는 데만 사용할 수 있고 메시지를 받을 때는 사용할 수 없습니다. 일반적으로 이벤트 허브에서는 클라이언트당 하나의 게시자를 사용합니다. 이벤트 허브의 게시자에게 전달되는 모든 메시지는 해당 이벤트 허브 내의 큐에 삽입됩니다. 게시자는 세분화된 액세스 제어를 사용하도록 설정합니다.

각 Event Hubs 클라이언트에는 클라이언트에 업로드되는 고유한 토큰이 할당됩니다. 토큰을 보유한 클라이언트는 하나의 게시자에게만 보낼 수 있으며 다른 게시자에게는 보낼 수 없습니다. 여러 클라이언트가 동일한 토큰을 공유하는 경우 각 클라이언트가 게시자를 공유합니다.

모든 토큰은 공유 액세스 서명 키로 할당됩니다. 일반적으로 모든 토큰은 동일한 키로 서명됩니다. 클라이언트는 키를 인식하지 못하므로 클라이언트는 토큰을 제조할 수 없습니다. 클라이언트는 만료될 때까지 동일한 토큰에 대해 작동합니다.

공유 액세스 서명을 사용하여 Event Hubs 소비자에 대한 액세스 권한 부여

Event Hubs 생산자에 의해 생성된 데이터를 사용하는 백 엔드 애플리케이션을 인증하려면, 해당 클라이언트에 Event Hubs 네임스페이스나 이벤트 허브 인스턴스 또는 토픽에 할당된 관리 권한 또는 수신 대기 권한이 있어야 Event Hubs 토큰 인증을 사용할 수 있습니다. 데이터는 소비자 그룹을 사용하여 Event Hubs에서 사용됩니다. SAS 정책은 세부적인 범위를 제공하지만, 이는 소비자 수준이 아니라 엔터티 수준에서만 정의됩니다. 즉, 네임스페이스 수준이나 이벤트 허브 인스턴스 또는 토픽 수준에서 정의된 권한이 해당 엔터티의 소비자 그룹에 적용됩니다.