Создание OBS-бакета и настройка прав с помощью Enterprise проекта

  1. Установите и настройте Terraform.

  2. Добавьте в конфигурационный файл блок кода, который создаст пользователя, группу и включит созданного пользователя в эту группу:

    resource "sbercloud_identity_user" "obs_user" {
    name = "OBS_User"
    description = "OBS user created by terraform"
    }
    resource "sbercloud_identity_group" "obs_admin_group" {
    name = "obs_admin_group"
    }
    resource "sbercloud_identity_group_membership" "obs_group_membership" {
    group = sbercloud_identity_group.obs_admin_group.id
    users = [
    sbercloud_identity_user. obs_user.id
    ]
    }
  3. Добавьте в конфигурационный файл блок кода, который создаст Enterprise-проект, роль с правами на операции с OBS и добавит группу с правами, описанными в роли, в Enterprise-проект.

    Примечание

    Команда terraform destroy не удаляет Enterprise-проект, а переводит его в состояние «disabled». Если нужно пересоздать Enterprise-проект после выполнения terraform destroy, импортируйте его с помощью команды terraform import с указанием id проекта. Например:

    terraform import sbercloud_enterprise_project.ep_obs_bucket id enterprise_project_id

    Как узнать «enterprise_project_id» в консоли облака

    resource "sbercloud_identity_role" "obs_admin_role" {
    name = "OBS_Admin"
    description = "created by terraform"
    type = "AX"
    policy = <<EOF
    {
    "Version": "1.1",
    "Statement": [
    {
    "Action": [
    "obs:*:*"
    ],
    "Effect": "Allow"
    }
    ]
    }
    EOF
    }
    resource "sbercloud_enterprise_project" "ep_obs_bucket" {
    name = "obs_bucket"
    }
    resource "sbercloud_identity_role_assignment" "obs_role_assign" {
    group_id = sbercloud_identity_group.obs_admin_group.id
    role_id = sbercloud_identity_role.obs_admin_role.id
    enterprise_project_id = sbercloud_enterprise_project.ep_obs_bucket.id
    }
  4. Добавьте в конфигурационный файл блок кода, который создаст OBS-бакет и присвоит ему Enterprise-проект:

    resource "sbercloud_obs_bucket" "obs_bucket" {
    bucket = "my-tf-test-bucket"
    acl = "private"
    enterprise_project_id = sbercloud_enterprise_project.ep_obs_bucket.id
    }
Advanced