簡體   English   中英

Terraform-Azure:授予組訪問 azure 資源的權限

[英]Terraform-Azure: Grant Access to azure resource for group

專家們,

我有一種情況,我必須將多個 Azure 資源的訪問權限授予特定組,並且我必須僅使用 Terraform 來執行此操作。 example: Azure Group Name: India-group (5-6 users is there in this group) Azure Subscription name: India Azure Resource SQL Database: SQL-db-1 Azure Resource Key-Vault: India-key-vlt-1 Azure Resource存儲帳戶:India-acnt-1 以及更多類似 PostgreSQL、存儲帳戶、blob ......

我認為您不需要關心資源組如何訪問資源。 您需要關心的是如何在必要時訪問資源。

通常,我們使用分配包含適當權限的角色的服務主體來訪問資源。 您可以查看什么是 Azure 資源的基於角色的訪問控制 (RBAC)通過 CLI 創建服務主體

在 Terraform 中,我假設您想從 KeyVault 獲取機密。 這是一個例子:

provider "azurerm" {
  features {}
}

resource "azuread_application" "example" {
  name                       = "example"
  homepage                   = "http://homepage"
  identifier_uris            = ["http://uri"]
  reply_urls                 = ["http://replyurl"]
  available_to_other_tenants = false
  oauth2_allow_implicit_flow = true
}

resource "azuread_service_principal" "example" {
  application_id               = azuread_application.example.application_id
  app_role_assignment_required = false

  tags = ["example", "tags", "here"]
}

resource "azurerm_resource_group" "example" {
  name     = "resourceGroup1"
  location = "West US"
}

resource "azurerm_key_vault" "example" {
  name                        = "testvault"
  location                    = azurerm_resource_group.example.location
  resource_group_name         = azurerm_resource_group.example.name
  enabled_for_disk_encryption = true
  tenant_id                   = var.tenant_id
  soft_delete_enabled         = true
  purge_protection_enabled    = false

  sku_name = "standard"

  access_policy {
    tenant_id = var.tenant_id
    object_id = azuread_service_principal.example.object_id

    key_permissions = [
      "get",
    ]

    secret_permissions = [
      "get",
    ]

    storage_permissions = [
      "get",
    ]
  }

  network_acls {
    default_action = "Deny"
    bypass         = "AzureServices"
  }

  tags = {
    environment = "Testing"
  }
}

然后,您可以訪問密鑰保管庫以通過服務主體獲取機密或密鑰。 您還可以查看通過 python 控制 Key Vault的示例。

對於其他資源,你需要先了解資源本身,然后才能知道如何以合適的方式訪問它。 最后,可以使用 Terraform 來實現。

暫無
暫無

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

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