Skip to content

Пример безопасной конфигурации бакета в Yandex Cloud Object Storage.

License

Notifications You must be signed in to change notification settings

yandex-cloud-examples/yc-s3-secure-bucket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Пример безопасной конфигурации Yandex Cloud Object Storage: Terraform

Схема решения

Схема

Описание

Terraform скрипт выполняет следующее:

  • ✅ Создает Bucket
  • ✅ Выполняет разграничение доступа (IAM, BucketPolicy) для групп: администраторы, read-only, write-only
  • ✅ Включает версионирование и жизненный цикл так, чтобы: хранить текущие версии файлов 365 дней, НЕтекущие версии файлов (удаленные/измененные) 150 дней
  • ✅ Включает логирование действий над Bucket в отдельный Bucket
  • ✅ Включает шифрование (Server-Side) объектов в Bucket

Terraform детали

Решение принимает на вход (variables):

  • список учетных записей администраторов: all-access-users
  • список сервисных аккаунтов, требущих прав чтения: read-only-sa
  • список сервисных аккаунтов, требущих прав записи: write-only-sa

Выполняет:

  • Создание sa с правами storage admin для создания Bucket
  • Создание KMS ключа для шифрования
  • Назначение прав учетным записям на работу с KMS ключами
  • Назначение прав IAM учетным записям для работы с Bucket
  • Создание отдельного Bucket для логирования действий
  • Создание основного Bucket
  • Применение BucketPolicy
  • Включение версионирования и жизненного цикла
  • Включение логирования
  • Включение шифрования

Пример заполнения variables:

variable "token" {
  description = "Yandex.Cloud security OAuth token"
  default     = "key.json" # generate yours: https://cloud.yandex.ru/docs/iam/concepts/authorization/oauth-token
}

variable "folder_id" {
  description = "Yandex.Cloud Folder ID where resources will be created"
  default     = "xxxxxx" # yc config get folder-id
}

variable "cloud_id" {
  description = "Yandex.Cloud ID where resources will be created"
  default     = "xxxxxx" #yc config get cloud-id
}

variable "all-access-users" {
  description = ""
  default = ["federatedUser:ajesnkfkxxxxxxxxxxxx", "federatedUser:ajeurmedxxxxxxxxxxxx"]

}

variable "read-only-sa" {
  description = ""
  default = ["serviceAccount:ajeph8f8xxxxxxxxxxxx", "serviceAccount:aje066slxxxxxxxxxxxx"]

}

variable "write-only-sa" {
  description = "sa"
  default = ["serviceAccount:ajem3ef7xxxxxxxxxxxx", "serviceAccount:aje1ngf4xxxxxxxxxxxx"]

}

About

Пример безопасной конфигурации бакета в Yandex Cloud Object Storage.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages