Как предоставить ВМ доступ к Key Vault в том же шаблоне ARM - PullRequest
1 голос
/ 20 января 2020

Я пытаюсь создать ARM-шаблон, способный обеспечить ВМ И хранилищем ключей. Идентификация виртуальной машины установлена ​​на тип "SystemAssigned". См. Фрагмент кода ниже:

        ...
        "name": "[variables('VM1')]",
        "type": "Microsoft.Compute/virtualMachines",
        "identity": { 
            "type": "SystemAssigned"
        },
        "apiVersion": "2019-07-01",
        ...

Я хочу предоставить виртуальной машине разрешения на доступ к секретам в хранилище. Для этого необходимо извлечь tenantID и ObjectID для accessPolicies. Для tenantID, который я использую:

"tenantId": "[subscription().tenantId]",

Есть ли аналогичный способ ссылки на ObjectID для виртуальной машины, которая создается в том же шаблоне?

Спасибо!

1 Ответ

1 голос
/ 20 января 2020

Чтобы получить доступ к KeyVault, необходимо использовать ссылку для получения идентификатора объекта (основного идентификатора) идентификатора управляемой службы виртуальной машины. См. Документацию здесь .

Я вижу, KeyVault хочет TenantID и ID объекта.

Арендатор, который вы уже должны иметь в шаблоне "tenantId": "[subscription().tenantId]"

, а ObjectID - это PrincipalId, как показано в связанных документах и ​​примере ниже.

{
    "apiVersion": "2017-09-01",
    "type": "Microsoft.Authorization/roleAssignments",
    "name": "[parameters('rbacGuid')]",
    "properties": {
        "roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
        "principalId": "[reference(variables('vmResourceId'), '2017-12-01', 'Full').identity.principalId]",
        "scope": "[resourceGroup().id]"
    },
     "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...