https://github.com/netology-code/clopro-homeworks/blob/main/15.3.md
Используя конфигурации, выполненные в рамках предыдущих домашних заданий, нужно добавить возможность шифрования бакета.
- С помощью ключа в KMS необходимо зашифровать содержимое бакета:
- создать ключ в KMS;
- с помощью ключа зашифровать содержимое бакета, созданного ранее.
- (Выполняется не в Terraform)* Создать статический сайт в Object Storage c собственным публичным адресом и сделать доступным по HTTPS:
- создать сертификат;
- создать статическую страницу в Object Storage и применить сертификат HTTPS;
- в качестве результата предоставить скриншот на страницу с сертификатом в заголовке (замочек).
Полезные документы:
Это необязательное задание. Его выполнение не влияет на получение зачёта по домашней работе.
Что нужно сделать
- С помощью роли IAM записать файлы ЕС2 в S3-бакет:
- создать роль в IAM для возможности записи в S3 бакет;
- применить роль к ЕС2-инстансу;
- с помощью bootstrap-скрипта записать в бакет файл веб-страницы.
- Организация шифрования содержимого S3-бакета:
- используя конфигурации, выполненные в домашнем задании из предыдущего занятия, добавить к созданному ранее бакету S3 возможность шифрования Server-Side, используя общий ключ;
- включить шифрование SSE-S3 бакету S3 для шифрования всех вновь добавляемых объектов в этот бакет.
- *Создание сертификата SSL и применение его к ALB:
- создать сертификат с подтверждением по email;
- сделать запись в Route53 на собственный поддомен, указав адрес LB;
- применить к HTTPS-запросам на LB созданный ранее сертификат.
Resource Terraform:
Пример bootstrap-скрипта:
#!/bin/bash
yum install httpd -y
service httpd start
chkconfig httpd on
cd /var/www/html
echo "<html><h1>My cool web-server</h1></html>" > index.html
aws s3 mb s3://mysuperbacketname2021
aws s3 cp index.html s3://mysuperbacketname2021
Нужно создать бакет с шифрованным содержимым. Для этого нужно помимо бакета создать ключ в KMS и связать его с бакетом
Готовим окружение
https://github.com/Spardoks/Terraform.-Yandex-Cloud
https://github.com/Spardoks/TerraformIntro
https://github.com/Spardoks/cloud_network_configuration
https://github.com/Spardoks/cloud_network_balancer
# Terraform v1.11.4
# debian 12
# sa-profile admin for folder
Разворачиваем инфраструктуру (src)
yc config profile activate sa-profile
export YC_TOKEN=$(yc iam create-token)
export YC_CLOUD_ID=$(yc config get cloud-id)
export YC_FOLDER_ID=$(yc config get folder-id)
cp .terraformrc ~/.terraformrc
cat > personal.auto.tfvars << EOF
token = "${YC_TOKEN}"
cloud_id = "${YC_CLOUD_ID}"
folder_id = "${YC_FOLDER_ID}"
EOF
terraform init
terraform validate
terraform plan
terraform apply
Проверяем шифрование
wget "https://storage.yandexcloud.net/spardoks/picture.jpg"
curl -I -X HEAD "https://storage.yandexcloud.net/spardoks/picture.jpg"
Чистим всё
terraform destroy

