관리 ID에 Event Grid 대상에 대한 액세스 권한 부여
이 섹션에서는 시스템 토픽, 사용자 지정 토픽 또는 도메인의 ID를 Azure 역할에 추가하는 방법을 설명합니다.
필수 조건
다음 문서의 지침을 사용하여 시스템이 할당한 관리 ID를 할당합니다.
지원되는 대상 및 Azure 역할
Event Grid 사용자 지정 엔터티 또는 도메인에 대해 ID를 사용하도록 설정하면 Azure는 자동으로 Microsoft Entra ID에 ID를 만듭니다. 사용자 지정 토픽 또는 도메인에서 지원되는 대상으로 이벤트를 전달할 수 있도록 이 ID를 적절한 Azure 역할에 추가합니다. 예를 들어, Event Grid 사용자 지정 엔터티가 해당 네임스페이스의 Event Hubs에 이벤트를 전달할 수 있도록 Azure Event Hubs 네임스페이스에 대한 Azure Event Hubs 데이터 보낸 사람 역할에 ID를 추가합니다.
현재 Azure Event Grid는 이벤트를 다음 대상으로 전달하기 위해 시스템 할당 관리 ID로 구성된 사용자 지정 엔터티 또는 도메인을 지원합니다. 또한 이 테이블은 사용자 지정 토픽이 이벤트를 전달하기 위해 ID가 속해야 하는 역할을 보여 줍니다.
대상 | Azure 역할 |
---|---|
Service Bus 큐 및 토픽 | Azure Service Bus 데이터 보내는 사람 |
Azure Event Hubs | Azure Event Hubs 데이터 보내는 사람 |
Azure Blob 스토리지 | Storage Blob 데이터 Contributor |
Azure Queue 스토리지 | Storage 큐 데이터 메시지 보내는 사람 |
Azure Portal 사용
사용자 지정 토픽 또는 도메인에서 대상으로 이벤트를 전달할 수 있도록 Azure Portal을 사용하여 사용자 지정 토픽 또는 도메인 ID를 적절한 역할에 할당할 수 있습니다.
다음 예에서는 큐 또는 엔터티 리소스가 포함된 Service Bus 네임스페이스에 대한 Azure Service Bus 데이터 보낸 사람 역할에 msitesttopic이라는 Event Grid 사용자 지정 엔터티에 대한 관리 ID를 추가합니다. 네임스페이스 수준에서 역할에 추가하면 Event Grid 사용자 지정 항목이 네임스페이스 내의 모든 엔터티에 이벤트를 전달할 수 있습니다.
Azure Portal에서 Service Bus 네임스페이스로 이동합니다.
왼쪽 창에서 액세스 제어를 선택합니다.
역할 할당 추가(미리 보기) 섹션에서 추가를 선택합니다.
역할 할당 추가 페이지에서 Azure Service Bus 데이터 보낸 사람을 선택한 후 다음을 선택합니다.
멤버 탭에서 다음 단계를 수행합니다.
사용, 그룹 또는 서비스 주체를 선택하고 + 멤버 선택을 클릭합니다. 관리 ID 옵션은 아직 Event Grid ID를 지원하지 않습니다.
멤버 선택 창에서 사용자 지정 토픽과 동일한 이름의 서비스 주체를 검색하여 선택합니다. 다음 예제에서는 spcustomtopic0728입니다.
멤버 선택 창에서 선택을 클릭합니다.
이제 멤버 탭으로 돌아가서 다음을 선택합니다.
검토 + 할당 페이지에서 설정을 검토한 후 검토 + 할당을 선택합니다.
이 단계는 테이블에 설명된 다른 역할에 ID를 추가하는 경우와 비슷합니다.
Azure CLI 사용
이 섹션의 예제에서는 Azure CLI를 사용하여 Azure 역할에 ID를 추가하는 방법을 보여 줍니다. 샘플 명령은 Event Grid 사용자 지정 항목에 대한 것입니다. Event Grid 도메인에 대한 명령은 비슷합니다.
사용자 지정 토픽 시스템 ID의 주체 ID 가져오기
먼저 사용자 지정 토픽의 시스템 관리 ID에 대한 보안 주체 ID를 가져오고 해당 역할에 ID를 할당합니다.
topic_pid=$(az ad sp list --display-name "$<TOPIC NAME>" --query [].objectId -o tsv)
다양한 범위에서 Event Hubs에 대한 역할 할당 만들기
다음 CLI 예제에서는 네임스페이스 수준이나 이벤트 허브 수준에서 Azure Event Hubs 데이터 보낸 사람 역할에 사용자 지정 토픽의 ID를 추가하는 방법을 보여 줍니다. 네임스페이스 수준에서 역할 할당을 만드는 경우 사용자 지정 토픽은 해당 네임스페이스의 모든 이벤트 허브에 이벤트를 전달할 수 있습니다. 이벤트 허브 수준에서 역할 할당을 만드는 경우 사용자 지정 토픽은 특정 이벤트 허브에만 이벤트를 전달할 수 있습니다.
role="Azure Event Hubs Data Sender"
namespaceresourceid=$(az eventhubs namespace show -n $<EVENT HUBS NAMESPACE NAME> -g <RESOURCE GROUP of EVENT HUB> --query "{I:id}" -o tsv)
eventhubresourceid=$(az eventhubs eventhub show -n <EVENT HUB NAME> --namespace-name <EVENT HUBS NAMESPACE NAME> -g <RESOURCE GROUP of EVENT HUB> --query "{I:id}" -o tsv)
# create role assignment for the whole namespace
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$namespaceresourceid"
# create role assignment scoped to just one event hub inside the namespace
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$eventhubresourceid"
다양한 범위의 Service Bus 토픽에 대한 역할 할당 만들기
다음 CLI 예에서는 Event Grid 사용자 지정 엔터티의 ID를 네임스페이스 수준 또는 Service Bus 엔터티 수준에서 Azure Service Bus 데이터 보낸 사람 역할에 추가하는 방법을 보여 줍니다. 네임스페이스 수준에서 역할 할당을 만드는 경우 Event Grid 항목은 해당 네임스페이스 내의 모든 엔터티(Service Bus 큐 또는 항목)에 이벤트를 전달할 수 있습니다. Service Bus 큐 또는 항목 수준에서 역할 할당을 만드는 경우 Event Grid 사용자 지정 항목은 해당 특정 Service Bus 큐 또는 항목에만 이벤트를 전달할 수 있습니다.
role="Azure Service Bus Data Sender"
namespaceresourceid=$(az servicebus namespace show -n $RG\SB -g "$RG" --query "{I:id}" -o tsv
sbustopicresourceid=$(az servicebus topic show -n topic1 --namespace-name $RG\SB -g "$RG" --query "{I:id}" -o tsv)
# create role assignment for the whole namespace
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$namespaceresourceid"
# create role assignment scoped to just one hub inside the namespace
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$sbustopicresourceid"
다음 단계
시스템 토픽, 사용자 지정 토픽 또는 도메인에 시스템이 할당한 관리 ID를 할당하고 대상의 적절한 역할에 ID를 추가했으므로, 이제 ID를 사용하여 대상에 이벤트를 전달하는 방법에 관해서는 관리 ID를 사용하여 이벤트 전달을 참조하세요.