Как сделать область действия настраиваемой роли Resourcegroup в azure? - PullRequest
0 голосов
/ 21 июня 2020

Я написал terraform для создания пользователя, группы ресурсов и определения роли.

Мне нужно, чтобы область определения ресурса была группой ресурсов, которую я создал.

Я не Я не знаю, как это сделать. Было бы здорово, если бы кто-нибудь мог помочь в этом.

########### for creating user ####

# Configure the Azure Provider
provider "azurerm" {
  version = "~> 1.30"
  subscription_id="723604be-b74b-4473-9d11-1802dbfdb787"
}

provider "azuread" {
  version = "~> 0.4"
  subscription_id="723604be-b74b-4473-9d11-1802dbfdb787"
}

resource "azuread_user" "test" {
  user_principal_name = "user1@catch.whizlabstesting.com"
  display_name        = "User1"
  mail_nickname       = "User1"
  password            = "Muneeshpandi@17"
  force_password_change = "false"
}

##### creating resource group #####

resource "azurerm_resource_group" "terraform_rg" {
  name = "user1_rgp"
  location = "East US"
    }

########## creating role definition ##########

data "azurerm_subscription" "primary" {}

resource "azurerm_role_definition" "sql_role" {
  name        = "sql_role"
  scope       = "data.azurerm_subscription.primary.id"
  description = "This is a custom role to create sql database"

  permissions {
    actions     = ["*"]
    not_actions = []
  }

  assignable_scopes =  [
   "/subscriptions/723604be-b74b-4473-9d11-1802dbfdb787/resourceGroups/user1_rgp"
  ]
}

Получение следующей ошибки при выполнении вышеуказанного кода:

Ошибка: authorization.RoleDefinitionsClient # CreateOrUpdate: Ошибка при ответе на запрос: StatusCode = 404 - исходная ошибка: autorest / azure: служба вернула ошибку. Status = 404 Code = "MissingSubscription" Message = "Запрос не имел подписки или действительного поставщика ресурсов уровня клиента."

Как сделать область настраиваемой роли Resourcegroup в azure?

1 Ответ

0 голосов
/ 22 июня 2020

Для создания настраиваемой роли для группы ресурсов необходимо разрешение Microsoft.Authorization/roleDefinitions/write, а для назначения настраиваемой роли пользователю необходимо разрешение Microsoft.Authorization/roleAssignments/write. Самый простой способ - присвоить вам роль подписки Onwer.

А для создания пользователя Azure AD:

Для добавления или удаления пользователей вы должны быть Пользователь-администратор или глобальный администратор.

Когда у вас есть все необходимые разрешения. Давайте сосредоточимся на вашем коде. Вам также необходимо назначить настраиваемую роль пользователю, которого вы создали, в рамках группы ресурсов. Затем вы можете изменить код следующим образом:

resource "azurerm_role_definition" "sql_role" {
  name        = "sql_role"
  scope       = data.azurerm_subscription.primary.id
  description = "This is a custom role to create sql database"

  permissions {
    actions     = ["*"]
    not_actions = []
  }

  assignable_scopes =  [
   data.azurerm_subscription.primary.id
  ]
}

resource "azurerm_role_assignment" "example" {
  scope              = azurerm_resource_group.terraform_rg.id
  role_definition_id = azurerm_role_definition.sql_role.id
  principal_id       = azuread_user.test.id
}

Если вы хотите, чтобы настройка была доступна только для группы ресурсов, вы можете изменить assignable_scopes с идентификатором группы ресурсов как azurerm_resource_group.terraform_rg.id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...