빠른 시작: Microsoft Graph 리소스를 사용하여 첫 번째 Bicep 파일 만들기 및 배포
이 빠른 시작에서는 각각 Microsoft Graph 리소스와 Azure 리소스를 나타내는 Microsoft Entra 보안 그룹 및 MSI(관리 서비스 ID)를 선언하는 Bicep 파일을 만듭니다. 그런 다음 MSI를 그룹의 소유자로 추가합니다. 또한 Bicep 확장을 통해 형식 안전성, 구문 유효성 검사 및 자동 완성을 제공하여 개발을 간소화하는 방법을 알아봅니다. 마지막으로 로그인한 사용자를 사용하여 Bicep 파일을 배포합니다.
Important
이 빠른 시작 문서에서는 사용되지 않으며 2025년 1월 24일에 사용 중지될 기본 제공 형식 대신 동적 형식 참조를 사용합니다. 사용 중지 날짜까지 기본 제공 형식 extension microsoftGraph
은 새 동적 형식과 공존합니다. 기존 Bicep 파일이 기본 제공 형식을 사용하는 경우 동적 형식 을 사용하도록 전환하여 향후 Bicep 파일 배포 문제를 방지합니다.
Important
Microsoft Graph Bicep은 현재 미리 보기로 제공됩니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
필수 조건
유효한 Azure 구독이 있습니다. Azure 구독 을 소유하지 않은 경우 시작하기 전에 체험 계정을 만듭니다.
작성 및 배포를 위한 Bicep 도구를 설치합니다. 이 빠른 시작에서는 작성을 위해 Bicep 확장과 함께 VS Code를 사용하고 배포를 위해 Azure CLI를 사용합니다. Azure PowerShell에 대한 샘플도 제공됩니다. 필요한 최소 Bicep 버전은 v0.30.3입니다.
보안 그룹을 만들 수 있는 권한을 할당하는 Microsoft Entra 역할이 있습니다. 사용자는 기본적으로 이 권한을 갖습니다. 그러나 관리자는 이 기본값 을 해제할 수 있습니다. 이 경우 최소한 그룹 관리자 역할을 할당해야 합니다.
Microsoft Graph 애플리케이션 그룹 추가
VS Code를 시작하고 동일한 폴더에 main.bicep 및 bicepconfig.json 두 개의 새 파일을 만듭니다.
다음으로, Bicep 파일에서 Microsoft Graph 리소스를 선언하려면 Bicep 미리 보기 기능을 사용하도록 설정하고 bicepconfig.json 구성하여 Microsoft Graph Bicep 형식 버전을 지정해야 합니다.
이 샘플에서는 v1.0 리소스를 사용하고 사용자에게 친숙한 확장 이름 "microsoftGraphV1_0"을 선언하여 Microsoft 아티팩트 레지스트리 형식 버전을 참조 br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview
합니다.
{
"experimentalFeaturesEnabled": {
"extensibility": true
},
// specify an alias for the version of the v1.0 dynamic types package you want to use
"extensions": {
"microsoftGraphV1_0": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview"
}
}
Microsoft 아티팩트 레지스트리 베타 형식 버전에 다른 참조를 추가하여 동일한 Bicep 파일에서 베타 및 v1.0에서 Microsoft Graph 리소스를 선언할 수도 있습니다.
main.bicep에서 Microsoft 아티팩트 레지스트리 동적 형식 패키지를 참조하기 위한 사용자 친화적인 이름을 입력extension microsoftGraphV1_0
microsoftGraphV1_0
합니다. 이 extension
문을 통해 Bicep 컴파일러는 사용자가 bicepconfig.json 정의한 Microsoft Graph 형식을 포함하고 있음을 알 수 있습니다. 다음 줄에서 키워드를 사용하여 리소스를 정의합니다 resource
. 공백을 입력 resource exampleGroup
하고 추가합니다.
extension microsoftGraphV1_0
resource exampleGroup
기호 이름 뒤에 공백을 추가하면 리소스 종류 목록이 표시됩니다. 사용 가능한 옵션에서 Microsoft.Graph/Groups를 선택할 수 있게 될 때까지 그룹을 계속 입력합니다.
팁
VS Code에 intellisense 옵션이 표시되지 않으면 필수 구성 요소에 지정된 대로 Bicep 확장을 설치했는지 확인합니다. 확장을 설치한 경우 Bicep 파일을 연 후 Bicep 언어 서비스를 시작할 시간을 제공합니다. 오른쪽 아래 모서리에 있는 알림은 서비스가 시작 중임을 나타냅니다. 해당 알림이 사라지면 서비스가 실행 중인 것입니다.
Microsoft.Graph/Groups를 선택하면 사용 가능한 API 버전(베타 또는 v1.0)이 표시됩니다. v1.0을 사용할 수 없거나 필요한 리소스 속성을 베타에서만 사용할 수 있는 경우가 아니면 항상 v1.0을 선택합니다. 이 빠른 시작에서는 v1.0을 사용합니다.
리소스 종류의 작은따옴표 뒤에 = 및 공백을 추가합니다. 리소스에 속성을 추가할 수 있는 옵션이 제공됩니다. required-properties를 선택합니다.
이 옵션은 배포에 필요한 리소스 종류의 모든 속성을 추가합니다. 이 옵션을 선택한 후 그룹에는 다음과 같은 속성이 있습니다.
resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
displayName:
mailEnabled:
mailNickname:
securityEnabled:
uniqueName:
}
해당 속성에 대한 값을 제공하고 mailEnabled를 false
로 설정하고 securityEnabled를 .로 true
설정합니다. uniqueName 은 이 그룹 리소스에 대해 변경할 수 없는 클라이언트 제공 키를 나타냅니다.
관리 ID 리소스 추가
Bicep 확장을 사용하는 VS Code는 관리 ID를 만드는 코드 조각과 같이 미리 정의된 코드 조각을 제공하여 개발을 간소화합니다. main.bicep에서 man을 입력한 다음 목록에서 res-managed-identity를 선택한 다음 [TAB] 또는 [ENTER]를 누릅니다.
참고: Microsoft Graph 리소스와 같은 확장 가능한 리소스에 대한 리소스 조각 은 현재 지원되지 않습니다.
이제 Bicep 파일에 다음 코드가 포함됩니다.
resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
name: 'name'
location: location
}
에 대한 location
매개 변수 정의를 추가하여 누락된 매개 변수 정의 오류를 수정할 수 있습니다. 확장 정의에서 .를 추가합니다 param location string = resourceGroup().location
. 여기서 사용되는 함수에 대한 자세한 내용은 resourceGroup()을 참조하세요. 관리 ID의 이름을 .로 name
exampleManagedIdentity
변경합니다.
관리 ID를 그룹 리소스의 소유자로 만들기
리소스에서 소유자를 exampleGroup
일치하는 유일한 속성 옵션으로 표시하는 ow 형식 아래에 uniqueName
새 줄을 만든 다음 [TAB] 또는 [ENTER]를 누릅니다.
소유자 속성은 배열이므로 m을 입력하고 managedIdentity(관리 ID의 기호 이름)를 선택하고 속성을 입력하고 다른 속성을 입력 하고 principalId를 선택하여 intellisense를 사용하여 관리 ID의 보안 주체 ID를 추가하고 []
참조합니다.
이제 main.bicep 파일이 다음과 같이 표시됩니다.
extension microsoftGraphV1_0
param location string = resourceGroup().location
resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
displayName: 'My example group'
mailEnabled: false
mailNickname: 'my-example-group'
securityEnabled: true
uniqueName: 'myExampleGroup'
owners: [managedIdentity.properties.principalId]
}
resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
name: 'exampleManagedIdentity'
location: location
}
로그인한 사용자를 사용하여 Bicep 파일 배포
다음 예제를 사용하여 Azure CLI 또는 Azure PowerShell에 로그인하여 Bicep 파일을 배포합니다. 이 설명서의 Azure CLI 예제는 Bash 콘솔을 사용합니다.
## Sign in to Azure CLI
az login
## Create a resource group
az group create --name exampleRG --location eastus
## Deploy the Bicep file
az deployment group create --resource-group exampleRG --template-file main.bicep
배포가 완료되면 배포에 성공했음을 나타내는 메시지가 표시됩니다.
참고 항목
복제 지연으로 인해 MSI(관리 서비스 ID)를 Microsoft Entra 그룹의 소유자로 추가하면 배포가 실패할 수 있습니다. 잠시 기다린 다음 동일한 Bicep 파일을 다시 배포합니다.
리소스 정리
Azure 리소스가 더 이상 필요 없으면 Azure CLI 또는 Azure PowerShell 모듈을 사용하여 빠른 시작 리소스 그룹을 삭제합니다.
참고 항목
리소스 그룹은 Azure 개념이며 Microsoft Graph 리소스에 영향을 주지 않습니다. Microsoft Graph 리소스는 Microsoft Graph에 대한 추가 요청으로 정리해야 합니다. 이를 위해 Azure CLI 또는 Azure PowerShell, Microsoft Graph CLI 또는 Microsoft Graph PowerShell을 사용할 수 있습니다.
다음 예제에서는 먼저 Azure 리소스를 삭제한 다음, Azure CLI 및 Azure PowerShell을 사용하여 Microsoft Graph 리소스를 삭제하는 명령을 보여 줍니다.
## Delete the resource group
az group delete --name exampleRG
## Delete the Microsoft Graph group
az rest --method delete --url 'https://graph.microsoft.com/v1.0/groups%28uniqueName=%27myExampleGroup%27%29'