簡體   English   中英

Terraform Azure Linux 具有 Azure AD 訪問權限的虛擬機

[英]Terraform Azure Linux VM with Azure AD Access

我正在嘗試使用 Terraform 提供一個簡單的 Ubuntu Linux VM,允許用戶使用他們的 Azure AD 憑據進行連接。 我是 Terraform 的新手,我正在嘗試從下面的屏幕截圖鏈接中顯示的 GUI 中找到啟用“使用 Azure AD 登錄”設置的正確資源部分/命令。

https://i.stack.imgur.com/Gg9p8.png

下面是配置 VM 的代碼片段:

resource "azurerm_linux_virtual_machine" "dev" {
  name                = "devhost01"
  resource_group_name = azurerm_resource_group.dev.name
  location            = azurerm_resource_group.ev.location
  size                = "Standard_D2s_v3"
  admin_username      = "admin"
  network_interface_ids = [
    azurerm_network_interface.dev.id,
  ]

  admin_ssh_key {
    username   = "admin"
    public_key = file("~/.ssh/admin.pub")
  }

  os_disk {
    caching              = "ReadWrite"
    storage_account_type = "Standard_LRS"
  }

  source_image_reference {
    publisher = "Canonical"
    offer     = "UbuntuServer"
    sku       = "18.04-LTS"
    version   = "latest"
  }
}

我也有一個相關但次要的問題; 我不確定它是否需要一個單獨的問題/帖子。 我通過啟用“使用 Azure AD 登錄”的 GUI 手動創建了一個 VM,嘗試連接

az ssh vm --ip XXX.XXX.XXX.XXX

並收到

Permission denied (publickey).

我沒有指定用戶需要使用 ssh 密鑰進行連接(至少不是故意的)。 我是否需要添加另一部分以允許經過身份驗證的 AD 用戶進行基本的 SSH 訪問?

使用 Azure AD 登錄到 linux VM。 您需要執行以下操作。

  1. 安裝 AAD linux 擴展,它似乎已按照您的屏幕截圖安裝
  2. 啟用系統分配的托管身份,這有助於 AD 登錄。 我看到這也正在創建。
  3. 如屏幕截圖中的“Azure AD”部分所述,您需要通過虛擬機資源上的 RBAC 分配Virtual Machine Administrator LoginVirtual Machine User Login角色之一。

第三個與允許 AD 登錄的前輩一樣重要。

執行所有三個步驟后, az ssh vm --ip XXX.XXX.XXX.XXX會讓您登錄到 VM。

更新

---- 根據評論中的要求添加 tf 代碼-----

將托管標識添加到 VM 資源

resource "azurerm_linux_virtual_machine" "dev" {
      // blah-blah
      identity {
        type         = "SystemAssigned"    
      }
 }

添加角色分配

resource "azurerm_role_assignment" "assign-vm-role" {
  scope                = azurerm_linux_virtual_machine.dev.id
  role_definition_name = "Virtual Machine Administrator Login"
  principal_id         = <id-of-group/user/sp>
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM