20
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Systems Manager パラメータをCloudFormationで使う

Last updated at Posted at 2017-12-04

概要

CloudFormationのパラメータをSystems Manager パラメータから取得する方法の解説

やってみる

コマンド

従来通り ParameterKeyParameterValue を渡せばOK
この時 ParameterValue にSystems Manager パラメータのキー名を指定する

$ aws cloudformation update-stack \
    --stack-name <スタック名> \
    --template-url <テンプレートURL> \
    --parameters \
      ParameterKey=<CFnパラメーターキー>,ParameterValue=<Systems Manager パラメータキー>\
    --capabilities CAPABILITY_IAM

テンプレート

TypeAWS::SSM::Parameter::Value<String> 型にする。
コマンドとテンプレートを修正するだけでSystems Manager パラメータからの呼び出しが可能に!

AWSTemplateFormatVersion: '2010-09-09'
Parameters:
  <CFnパラメーターキー>:
    # コマンドの引数で指定した、<Systems Manager パラメータキー>からパラメータを取得してくれる
    Type: AWS::SSM::Parameter::Value<String>

試す

MySQLを構築するテンプレートを例にする

Systems Manager パラメータ(EC2 パラメータストア)

以下のキーで、DBユーザー名とパスワードをSystems Manager パラメータに保管してあるとする。
SecureStringだとCloudFormationから呼び出せないので注意。

key value
MySQLUsername mysqluser
MySQLPassword mypassword

テンプレート

rds.yaml
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
  Username:
    NoEcho: true
    Type: AWS::SSM::Parameter::Value<String>
    
  Password:
    NoEcho: true
    Type: AWS::SSM::Parameter::Value<String>

  StorageSize:
    Type: Number

Resources:
  DB: 
    Type: AWS::RDS::DBInstance
    Properties: 
      DBInstanceClass: "db.t2.medium"
      Engine: "MySQL"
      EngineVersion: "5.7"
      Iops: "1000"
      AllocatedStorage: !Ref StorageSize
      MasterUsername: !Ref: Username
      MasterUserPassword: !Ref Password

コマンド

ParameterValue を呼び出したいSystems Manager パラメータのキー名にすることで呼び出せる

$ aws cloudformation update-stack \
    --stack-name rds-stack \
    --template-url file://rds.yaml \
    --parameters \
      ParameterKey=Username,ParameterValue=MySQLUsername \
      ParameterKey=Password,ParameterValue=MySQLPassword \
      ParameterKey=StorageSize,ParameterValue=100 \
    --capabilities CAPABILITY_IAM

まとめ

機微情報の管理をSystems Manager パラメータで一元管理できるのはとても良いですね

参考

20
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?