Azure Ad Provider для Terraform Может использоваться для управления вашими ресурсами Azure Active Directory. Это позволяет вам делать что -то вроде:
- Автоматически предоставляет пользователей и убедитесь, что они принадлежат к правильным группам.
- Управляйте Azure Compute разрешениями через Azure AD Groups.
В следующем примере показано, как использовать Azure Ad Provider для создания группы в Azure Ad:
terraform { required_providers { azuread = { source = "hashicorp/azuread" version = "= 1.6.0" } } } resource "azuread_group" "test" { display_name = "Test Group" }
Раздел Terraform в начале используется для указания версии поставщика, которую мы хотим использовать, и ресурс azuread_group
тест
Блок определяет нашу группу.
Поставщик Azure AD позволяет несколько методов аутентификации, которые изложены в документации поставщика. Чтобы позволить вам быстро встать и работать, поставщик рекламы попытается получить ваши учетные данные через Azure CLI.
Хотя это хорошо для экспериментов и локального тестирования, для неинтерактивных сценариев, таких как CI, вам нужно использовать Служба директора или Управляемая идентичность обслуживания Анкет
Чтобы управлять вашими объектами Azure AD, учетная запись, используемая Terraform, должна иметь правильные разрешения для выполнения своих действий. Вы можете управлять этими разрешениями через Роли и администраторы Раздел Azure Ad:
Например, чтобы позволить директору службы управлять группами, вы добавите его в Группы администратор роль:
Другой вариант, который можно использовать с принципалами обслуживания, вместо того, чтобы предоставить роль администратора, — это предоставить им конкретные разрешения API. Для этого сначала найдите заявление на рекламу, связанную с принципалом вашего обслуживания в Регистрация приложений раздел:
Перейдите на страницу API разрешений для приложения и нажмите на Добавить разрешение :
На появлении экрана выберите Лазур Активный График каталога API, а затем выберите соответствующее разрешение, которое вы хотите добавить:
Прежде чем принципал обслуживания сможет фактически использовать только что добавленное разрешение, вам необходимо сделать последний шаг под названием «Предоставление Административное согласие Анкет Вы можете сделать это, нажав на согласие администратора гранта кнопка, отображаемая над таблицей разрешений:
Примечания :
- При добавлении разрешений в свой директор службы вам нужно добавить Разрешения приложения а не Делегированные разрешения . Это означает, что Принципал службы разрешено выполнять указанные действия в качестве себя, а не от имени другого пользователя.
- Набор разрешений, которые вы можете добавить с помощью разрешений API, весьма ограничен. Например, для создания рекламных групп вам необходимо добавить Каталог. Читай пиши. Все разрешение, но это не позволит вашему принципалу услуги удалять любые группы, которые он создает. Чтобы иметь возможность удалять группы, вам нужно предоставить это Групповой администратор Роль, поэтому в зависимости от ваших требований, не может быть никакого смысла предоставить разрешения API.
- Поставщик Azure Ad Terraform переключается на Microsoft Graph API На момент версии 2.0.0, поэтому после выпуска версии 2 вам нужно будет предоставить разрешения на Microsoft Graph API вместо Azure Active Directory Graph API Анкет
Управление пользователями и группами
Следующий пример создает два пользователя и две группы и назначает каждого пользователя группе:
resource "azuread_user" "adamc" { user_principal_name = "adamc@adamrpconnellygmail.onmicrosoft.com" display_name = "Adam Connelly" password = "SuperSecret01@!" force_password_change = true } resource "azuread_user" "bobd" { user_principal_name = "bobd@adamrpconnellygmail.onmicrosoft.com" display_name = "Bob Dolton" password = "SuperSecret01@!" force_password_change = true } resource "azuread_group" "development" { display_name = "Development" members = [ azuread_user.adamc.id ] } resource "azuread_group" "sales" { display_name = "Sales" members = [ azuread_user.bobd.id ] }
Создание директора службы и предоставление разрешений RBAC
Следующий пример объединяет Azure Ad Provider С помощью Azure RM -поставщика, позволяя вам создать принципал службы и назначить ему разрешение на управление определенными ресурсами Azure:
# Create an AD Application resource "azuread_application" "automation" { display_name = "sp-automation" } # Create a Service Principal from that Application resource "azuread_service_principal" "automation" { application_id = azuread_application.automation.application_id app_role_assignment_required = false } # Get information about the configured Azure subscription data "azurerm_subscription" "primary" {} # Grant our service principal "Contributor" access over the subscription resource "azurerm_role_assignment" "automation_contributor" { scope = data.azurerm_subscription.primary.id role_definition_name = "Contributor" principal_id = azuread_service_principal.automation.object_id }
В этом посте я рассмотрел то, для чего используется поставщик Azure Ad Terraform, как аутентифицировать и предоставить правильные разрешения, а также показать несколько примеров того, что вы можете с ним сделать. Надеюсь, вы нашли это полезным!
Если вы заинтересованы в том, чтобы узнать о том, как вы можете использовать SpaceLift для управления вашими ресурсами Azure, ознакомьтесь с Комплексный документация Azure Анкет Кроме того, не забывайте, что вы можете легко дать космическую линию БЕСПЛАТНЫЙ тестовый привод !
Оригинал: «https://dev.to/spacelift/how-to-manage-active-directory-objects-with-azure-ad-provider-for-terraform-9e2»