이 빠른 시작에서는 형식 안전성, 구문 유효성 검사 및 자동 완성을 위해 VS Code Bicep 확장을 사용하여 Bicep 파일을 작성하는 방법을 보여 줍니다. Microsoft Entra 보안 그룹 및 MSI(관리 서비스 ID)를 선언하고 MSI를 그룹의 소유자로 추가하고 마지막으로 로그인한 사용자를 사용하여 파일을 배포합니다.
Prerequisites
- Azure 구독: 계정이 없는 경우 체험 계정을 만듭니 다.
- Bicep 도구: 작성 및 배포를 위한 Bicep 도구를 설치합니다. 이 가이드에서는 Bicep 확장 및 Azure CLI와 함께 VS Code를 사용합니다. 최소 필수 Bicep 버전: v0.36.1.
- Microsoft Entra 역할: 보안 그룹을 만들 수 있는 권한이 있는지 확인합니다. 기본적으로 사용자에게는 이 권한이 있지만 관리자는 이를 제한할 수 있습니다. 제한된 경우 최소한 그룹 관리자 역할이 필요합니다.
Microsoft Graph 애플리케이션 그룹 추가
VS Code에서 main.bicep 및 bicepconfig.json두 개의 파일을 만듭니다. 동일한 폴더에 있어야 합니다.
bicepconfig.jsonMicrosoft Graph Bicep 형식 버전을 지정합니다. 이 예제에서는 v1.0 리소스를 사용하고 형식 버전에 "microsoftGraphV1"이라는 별칭을 br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:1.0.0 할당합니다.
{
"extensions": {
"microsoftGraphV1": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:1.0.0"
}
}
Microsoft 아티팩트 레지스트리 베타 형식 버전에 다른 참조를 추가하여 동일한 Bicep 파일에서 베타 및 v1.0에서 Microsoft Graph 리소스를 선언할 수도 있습니다.
main.bicep에 Microsoft Artifact Registry에서 동적 형식 패키지를 참조하기 위한 사용자 친화적인 이름인 main.bicep을 입력 extension microsoftGraphV1microsoftGraphV1 합니다. 이 extension 문을 통해 Bicep 컴파일러는 bicepconfig.json 정의된 Microsoft Graph 형식이 포함되어 있음을 알 수 있습니다. 다음 줄에서 키워드를 사용하여 리소스를 정의합니다 resource .
resource exampleGroup를 입력하십시오.
extension microsoftGraphV1
resource exampleGroup
기호 이름 뒤의 공백을 추가하여 리소스 종류 목록을 표시합니다. 그룹을 계속 입력한 다음 사용 가능한 옵션에서 Microsoft.Graph/Groups를 선택합니다.
Tip
VS Code에 Intellisense 옵션이 표시되지 않으면 필수 구성 요소에 지정된 대로 Bicep 확장을 설치했는지 확인합니다. 확장이 설치된 경우 Bicep 파일을 연 후 Bicep 언어 서비스를 시작할 시간을 제공합니다. 오른쪽 아래 모서리에 있는 알림은 서비스가 시작 중임을 나타냅니다. 해당 알림이 사라지면 서비스가 실행 중인 것입니다.
Microsoft.Graph/Groups를 선택하면 사용 가능한 API 버전(베타 또는 v1.0)이 표시됩니다. v1.0을 사용할 수 없거나 필요한 리소스 속성이 베타에만 있는 경우가 아니면 선택합니다. 이 빠른 시작에서는 v1.0을 사용합니다.
리소스 종류의 작은따옴표 뒤에 = 및 공백을 추가합니다. 리소스에 속성을 추가하는 옵션이 표시됩니다. Select required-properties.
이 옵션은 배포에 필요한 리소스 종류의 모든 속성을 추가합니다. 이 옵션을 선택한 후 그룹에는 다음과 같은 속성이 있습니다.
resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
displayName:
mailEnabled:
mailNickname:
securityEnabled:
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의 이름을 .로 nameexampleManagedIdentity변경합니다.
관리 ID를 그룹 리소스의 소유자로 만들기
리소스에서 exampleGroup 아래에 새 줄을 만듭니다 uniqueName.
소유자를 일치하는 유일한 속성 옵션으로 표시하는 ow를 입력하고 [TAB] 또는 [ENTER]를 선택합니다.
owner 속성은 개체입니다. [SPACE]를 선택하고 필수 속성을 선택합니다. 소유자 속성은 다음과 같습니다.
owners: {
relationships:
}
관계 속성은 배열입니다. IntelliSense를 사용하여 관리 ID의 보안 주체 ID를 추가하고 [] 참조합니다.
m을 입력하고 managedIdentity(관리 ID의 기호 이름)를 선택하고 , .를 입력하고, 속성을 선택한 다음, 다른 .를 입력하고 principalId를 선택합니다.
main.bicep 파일은 다음과 같습니다.
extension microsoftGraphV1
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: {
relationships: [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
배포가 완료되면 배포에 성공했음을 나타내는 메시지가 표시됩니다.
Note
복제 지연으로 인해 MSI(관리 서비스 ID)를 Microsoft Entra 그룹의 소유자로 추가하면 배포가 실패할 수 있습니다. 잠시 기다린 다음 동일한 Bicep 파일을 다시 배포합니다.
리소스 정리
만든 Azure 리소스가 더 이상 필요하지 않은 경우 Azure CLI 또는 Azure PowerShell을 사용하여 빠른 시작 리소스 그룹을 삭제합니다.
Note
리소스 그룹은 Azure 개념이며 Microsoft Graph 리소스에 영향을 주지 않습니다. Microsoft Graph 리소스는 정리를 위해 Microsoft Graph에 대한 또 다른 요청이 필요합니다. Azure CLI, Azure PowerShell 또는 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'