diff --git a/src/homework/15-cloud-providers/15.3/readme.md b/src/homework/15-cloud-providers/15.3/readme.md
new file mode 100644
index 0000000..730c629
--- /dev/null
+++ b/src/homework/15-cloud-providers/15.3/readme.md
@@ -0,0 +1,57 @@
+Выполнение [домашнего задания](https://github.com/netology-code/clokub-homeworks/blob/clokub-5/15.3.md)
+по теме "15.3. Безопасность в облачных провайдерах"
+
+## Q/A
+
+> Используя конфигурации, выполненные в рамках предыдущих домашних заданиях, нужно добавить возможность шифрования бакета.
+
+### Задание 1
+
+Вся конфигурация terraform прописана в директории [terraform](./terraform). Для запуска необходимо скопировать файл
+[variables.tf.example](./terraform/variables.tf.example) в [variables.tf](./terraform/variables.tf) и проставить актуальные
+значения для всех переменных: `yandex_cloud_id`, `yandex_folder_id`, `yandex_cloud_token`.
+Последнее значение можно получить выполнив команду `yc iam create-token`.
+
+> 1. С помощью ключа в KMS необходимо зашифровать содержимое бакета:
+> - Создать ключ в KMS
+
+Объект ключа шифрования создаётся следующим описанием:
+
+```terraform
+resource "yandex_kms_symmetric_key" "os-cipher-key" {
+ name = "os-cipher-key"
+}
+```
+
+> - С помощью ключа зашифровать содержимое бакета, созданного ранее.
+
+Из [домашнего задания 15.2](/src/homework/15-cloud-providers/15.2) взято описание создания бакета и одного объекта внутри данного бакета.
+Для шифрования содержимого необходимо добавить следующий блок к описанию конфигурации `os-netology-bucket`:
+
+```terraform
+server_side_encryption_configuration {
+ rule {
+ apply_server_side_encryption_by_default {
+ kms_master_key_id = yandex_kms_symmetric_key.os-cipher-key.id
+ sse_algorithm = "aws:kms"
+ }
+ }
+}
+```
+
+PS. При создании подобного бакета загрузка файлов через `terraform` не проходит с ошибкой 403.
+Ручная загрузка через web-интерфейс производится корректно.
+
+> 2. (Выполняется НЕ в terraform) *Создать статический сайт в Object Storage c собственным публичным адресом и сделать доступным по HTTPS
+> - Создать сертификат,
+> - Создать статическую страницу в Object Storage и применить сертификат HTTPS,
+> - В качестве результата предоставить скриншот на страницу с сертификатом в заголовке ("замочек").
+
+После создания бакета (например, с названием `os-netology`, во вкладке "Веб-сайт" необходимо выбрать "Хостинг" и сохранить изменения. Затем во вкладке "Объекты"
+нужно загрузить два файла: [index.html](./static/index.html) и [error.html](./static/error.html).
+После загрузки можно убедится, что сайт работает, перейдя по ссылке `https://os-netology.website.yandexcloud.net/`.
+
+Чтобы создать свой домен, необходимо следовать [инструкции yandex cloud](https://cloud.yandex.ru/docs/tutorials/web/static?from=int-console-empty-state#configure-dns).
+
+// todo вроде бы всё применилось, но не работает. Так как собственного домена у меня нет,
+// то и точно следовать инструкции не представляется возможным.
diff --git a/src/homework/15-cloud-providers/15.3/static/error.html b/src/homework/15-cloud-providers/15.3/static/error.html
new file mode 100644
index 0000000..bf37460
--- /dev/null
+++ b/src/homework/15-cloud-providers/15.3/static/error.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Cute cat image test
+
+
+ Hello world!
+
+
diff --git a/src/homework/15-cloud-providers/15.3/static/index.html b/src/homework/15-cloud-providers/15.3/static/index.html
new file mode 100644
index 0000000..bf37460
--- /dev/null
+++ b/src/homework/15-cloud-providers/15.3/static/index.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Cute cat image test
+
+
+ Hello world!
+
+
diff --git a/src/homework/15-cloud-providers/15.3/terraform/.gitignore b/src/homework/15-cloud-providers/15.3/terraform/.gitignore
new file mode 100644
index 0000000..3309aee
--- /dev/null
+++ b/src/homework/15-cloud-providers/15.3/terraform/.gitignore
@@ -0,0 +1,38 @@
+# Local .terraform directories
+**/.terraform/*
+
+# .tfstate files
+*.tfstate
+*.tfstate.*
+
+# Crash log files
+crash.log
+crash.*.log
+
+# Exclude all .tfvars files, which are likely to contain sentitive data, such as
+# password, private keys, and other secrets. These should not be part of version
+# control as they are data points which are potentially sensitive and subject
+# to change depending on the environment.
+#
+*.tfvars
+
+# Ignore override files as they are usually used to override resources locally and so
+# are not checked in
+override.tf
+override.tf.json
+*_override.tf
+*_override.tf.json
+
+# Include override files you do wish to add to version control using negated pattern
+#
+# !example_override.tf
+
+# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
+# example: *tfplan*
+
+# Ignore CLI configuration files
+.terraformrc
+terraform.rc
+.terraform.lock.hcl
+
+variables.tf
diff --git a/src/homework/15-cloud-providers/15.3/terraform/main.tf b/src/homework/15-cloud-providers/15.3/terraform/main.tf
new file mode 100644
index 0000000..565b274
--- /dev/null
+++ b/src/homework/15-cloud-providers/15.3/terraform/main.tf
@@ -0,0 +1,19 @@
+terraform {
+ required_providers {
+ yandex = {
+ source = "yandex-cloud/yandex"
+ }
+ }
+ required_version = ">= 0.13"
+}
+
+provider "yandex" {
+ token = var.yandex_cloud_token
+ cloud_id = var.yandex_cloud_id
+ folder_id = var.yandex_folder_id
+ zone = "ru-central1-a"
+}
+
+resource "yandex_iam_service_account" "os-service-account" {
+ name = "os-service-account"
+}
diff --git a/src/homework/15-cloud-providers/15.3/terraform/object_storage.tf b/src/homework/15-cloud-providers/15.3/terraform/object_storage.tf
new file mode 100644
index 0000000..8cee80c
--- /dev/null
+++ b/src/homework/15-cloud-providers/15.3/terraform/object_storage.tf
@@ -0,0 +1,40 @@
+// Назначение роли сервисному аккаунту
+resource "yandex_resourcemanager_folder_iam_member" "os-storage-editor" {
+ folder_id = var.yandex_folder_id
+ role = "storage.editor"
+ member = "serviceAccount:${yandex_iam_service_account.os-service-account.id}"
+}
+
+// Создание статического ключа доступа
+resource "yandex_iam_service_account_static_access_key" "os-static-key" {
+ depends_on = [yandex_resourcemanager_folder_iam_member.os-storage-editor]
+
+ service_account_id = yandex_iam_service_account.os-service-account.id
+ description = "static access key for object storage"
+}
+
+// Создание ключа шифрования
+resource "yandex_kms_symmetric_key" "os-cipher-key" {
+ name = "os-cipher-key"
+}
+
+// Создание бакета с использованием ключа
+resource "yandex_storage_bucket" "os-netology-bucket" {
+ access_key = yandex_iam_service_account_static_access_key.os-static-key.access_key
+ secret_key = yandex_iam_service_account_static_access_key.os-static-key.secret_key
+ bucket = "os-netology-bucket"
+
+ anonymous_access_flags {
+ read = true
+ list = false
+ }
+
+ server_side_encryption_configuration {
+ rule {
+ apply_server_side_encryption_by_default {
+ kms_master_key_id = yandex_kms_symmetric_key.os-cipher-key.id
+ sse_algorithm = "aws:kms"
+ }
+ }
+ }
+}
diff --git a/src/homework/15-cloud-providers/15.3/terraform/variables.tf.example b/src/homework/15-cloud-providers/15.3/terraform/variables.tf.example
new file mode 100644
index 0000000..244f0f4
--- /dev/null
+++ b/src/homework/15-cloud-providers/15.3/terraform/variables.tf.example
@@ -0,0 +1,16 @@
+# Заменить на ID своего облака
+# https://console.cloud.yandex.ru/cloud?section=overview
+variable "yandex_cloud_id" {
+ default = "b1gu1gt5nqi6lqgu3t7s"
+}
+
+# Заменить на Folder своего облака
+# https://console.cloud.yandex.ru/cloud?section=overview
+variable "yandex_folder_id" {
+ default = "b1gaec42k169jqpo02f7"
+}
+
+# OAuth токен, используемый утилитой yc. Применялся на этапе с packer.
+variable "yandex_cloud_token" {
+ default = ""
+}