yandex-cloud / terraform-provider-yandex

Terraform Yandex provider
https://www.terraform.io/docs/providers/yandex/
Mozilla Public License 2.0
211 stars 116 forks source link

Как с помощью terraform установить роль на S3 bucket ? #429

Closed LuckySB closed 3 months ago

LuckySB commented 7 months ago

В документации на облако есть возможность установить сервисному аккаунту права доступа на конкретный S3 бакет. Через назначение роли.

А возможно ли осуществить такую операцию с помощью terraform провайдера yandex ?

PeppaTheC commented 4 months ago

Привет, воспользуйся ресурсом yandex_resourcemanager_folder_iam_member. Как показано в документации

LuckySB commented 4 months ago

мда. @PeppaTheC ресурс yandex_resourcemanager_folder_iam_member устанавливает права на весь folder (каталог в терминологии яндекс облака). В итоге в документации пример который создает сервис аккаунт и выдает ему роль storage.editor, для того, чтобы далее терраформ смог создать бакет. Ну и соотвественно у этого сервис аккаунта есть доступы ко всем бакетам, которые находятся в этом облачном каталоге.

А мне надо дать доступ к уже существующему бакету. только к Одному!!!

somewho commented 4 months ago

@PeppaTheC переоткройте исью, и так с вашей реализацией s3 через терраформ куча проблем, а тут еще и вопрос безопасности

PeppaTheC commented 4 months ago

мда. @PeppaTheC ресурс yandex_resourcemanager_folder_iam_member устанавливает права на весь folder (каталог в терминологии яндекс облака). В итоге в документации пример который создает сервис аккаунт и выдает ему роль storage.editor, для того, чтобы далее терраформ смог создать бакет. Ну и соотвественно у этого сервис аккаунта есть доступы ко всем бакетам, которые находятся в этом облачном каталоге.

А мне надо дать доступ к уже существующему бакету. только к Одному!!!

Если нужно управлять правами отдельного бакета, воспользуйтесь bucket policy. https://yandex.cloud/ru/docs/storage/operations/buckets/policy#apply-policy

somewho commented 3 months ago

мда. @PeppaTheC ресурс yandex_resourcemanager_folder_iam_member устанавливает права на весь folder (каталог в терминологии яндекс облака). В итоге в документации пример который создает сервис аккаунт и выдает ему роль storage.editor, для того, чтобы далее терраформ смог создать бакет. Ну и соотвественно у этого сервис аккаунта есть доступы ко всем бакетам, которые находятся в этом облачном каталоге.

А мне надо дать доступ к уже существующему бакету. только к Одному!!!

оставлю тут пример установки прав через policy на всякий случай

resource "yandex_iam_service_account" "storage-sa" {
  name        = "storage-sa"
}

resource "yandex_resourcemanager_folder_iam_member" "storage-viewer" {
  folder_id = var.folder_id
  member    = "serviceAccount:${yandex_iam_service_account.storage-sa.id}"
  role      = "storage.configViewer"
}

resource "yandex_storage_bucket" "my-bucket" {
  access_key = var.object_storage_api_key
  secret_key = var.object_storage_api_secret
  bucket     = "my-storage"

  max_size = 10737418240

  grant {
    permissions = ["READ", "WRITE"]
    type        = "CanonicalUser"
    id          = yandex_iam_service_account.storage-sa.id
  }
}