https://techblog.zozo.com/entry/pass_secrets_to_cloudformation
-- 1. コマンド等のインストール
-- 1.1 aws cli version 2 インストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-- 1.2 コマンドインストール
sudo yum -y install jq mysql
-- 2. シークレット作成
aws secretsmanager list-secrets
aws secretsmanager create-secret \
--name secret01 \
--description secret01
aws secretsmanager describe-secret \
--secret-id secret01
aws secretsmanager put-secret-value \
--secret-id secret01 \
--secret-string '{"password":"password"}'
aws secretsmanager get-secret-value \
--secret-id secret01
-- 3. スタック作成
AWSTemplateFormatVersion: "2010-09-09"
Description: Provision RDS using AWS Secrets Manager
Resources:
RDS:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceIdentifier: mysql01
Engine: MySQL
EngineVersion: 8.0.25
DBInstanceClass: db.t3.micro
AllocatedStorage: 20
StorageType: gp2
MasterUsername: root
MasterUserPassword: '{{resolve:secretsmanager:secret01:SecretString:password}}'
PubliclyAccessible: false
MultiAZ: false
AutoMinorVersionUpgrade: false
EnablePerformanceInsights : false
BackupRetentionPeriod: 1
Tags:
- Key: Name
Value: mysql01
DeletionPolicy: Delete
aws cloudformation validate-template \
--template-body file://a.yaml
aws cloudformation create-stack \
--stack-name stack01 \
--template-body file://a.yaml
-- 4. スタック一覧
aws cloudformation describe-stacks \
--stack-name stack01
aws cloudformation describe-stack-resources \
--stack-name stack01
-- 5. 動作確認
mysql -h mysql01.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p
-- 6. クリーンアップ
-- スタック削除
aws cloudformation delete-stack \
--stack-name stack01
-- シークレット削除
aws secretsmanager list-secrets
aws secretsmanager delete-secret \
--secret-id secret01 \
--force-delete-without-recovery