При использовании входа в веб-браузер с помощью az cli, Получение идентификатора объекта этого пользователя
Я хочу подготовить хранилище ключей Azure от terraform через интерактивную подсказку powershell. Я хочу войти в лазурь (az login
) с помощью веб-браузера. Я хочу, чтобы пользователи id объекта устанавливали для него политику ограниченного доступа. Мой фрагмент кода terraform для хранилища ключей выглядит следующим образом:
resource "azurerm_key_vault" "always_encrypted_sample" {
# . . . . SNIP . . . .
access_policy {
tenant_id = "${data.azurerm_client_config.current.tenant_id}"
object_id = "${var.certificate_creator}"
certificate_permissions = [
"create", "get" # Terraform needs get to make the cert, probably to check its existance
]
}
}
resource "azurerm_key_vault_certificate" "column_certificate" {
# . . . . SNIP . . . .
}
Я не знаю, как получить идентификатор объекта. az account show
только дает мне следующее:
{
"environmentName": "AzureCloud",
"id": "XXXXXXXXXXXX",
"isDefault": true,
"name": "Pay-As-You-Go",
"state": "Enabled",
"tenantId": "XXXXXXX",
"user": {
"name": "user@domain.tld",
"type": "user"
}
}
Я открыл запрос функции для пользователя, чтобы содержать свойство id. Я ищу обходной путь. Есть ли в azure cli команда для получения идентификатора объекта моего пользователя или даже upn, чтобы я мог запросить идентификатор объекта из этого? Является ли этот идентификатор объекта где-то терраформой? Это не в azurerm_client_config
,
0 ответов
Есть способ сделать это с помощью интерфейса командной строки Azure. Вот демо:
скрипты / getuser.ps1:
$t = az ad signed-in-user show
$t = "$t"
$j = ConvertFrom-Json $t
Write-Output "{`"object_id`":`"$($j.objectId)`"}"
main.ts:
provider "azurerm" {
subscription_id = var.subscription_id
}
data "external" "user" {
program = ["powershell.exe", "${path.module}/scripts/getuser.ps1"]
}
output "object_id" {
value = data.external.user.result.object_id
}
Иметь ввиду az ad signed-in-user
довольно новый, поэтому убедитесь, что все в курсе.
Ресурсы:
https://docs.microsoft.com/en-us/cli/azure/ad/signed-in-user?view=azure-cli-latest https://www.terraform.io/docs/providers/external/data_source.html