LoginSignup
0
0

More than 3 years have passed since last update.

【AWS】用語を整理しながら学ぶAWS - part6 AWS Syetems Manager

Last updated at Posted at 2021-04-07

はじめに

この記事では AWS Cloud Tech を通して AWS Systems Manager(以下、AWS SSM) を学習して実践していく記事です。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば書き直していく予定です。

AWS Systems Manager とは

AWS Systems Manager (旧称 SSM) は、
AWS でインフラストラクチャを表示および制御するために使用できる AWS のサービスです。

AWS Systems Manager

なるほど。全くわからん。
なんとなーくで解釈すると。。。

セキュリティや運用の自動化そして、パラメータストアとして活躍すると
(なんかまた、横文字出てきた)

パラメータストアとは

(なんだろう。。。基本情報技術者試験に出てきそうなワード)

パラメータ(値)ストア(貯める)なのでお察しですが
パラメータストアとは任意の値を保存しておける場所のこと。

AWS SSM では主に平文の文字列とセキュアストリング、文字列リストを保存できるとのこと
(なんかまた、横文字出てきた)

平文とセキュアストリング

平文は「ひらぶん」と読みます。
英語ではしばしば、Plain Text または ClearText と表現されます。

AWS では平文のことをプレーンテキストと表現しています。

で、平文とセキュアストリングって何がどう違うんですかという話ですが

ざっくり言えば、平文は暗号化されません。つまり、まる裸文字列 DAZE!
セキュアストリングは暗号化された文字列です。

ちなみに平文でパスワードのやりとりをしてしまう代表的なプロトコルには
FTP、POP、Telnet が存在する。

どういうときにどっち使うの?

ざっくり言うと
見えてしまっても良いモノ(困らないモノ)に平文を使う。
見られたら困るモノにセキュアストリングを使う。

使うと良いこと

最近、掲載した CloudFormation によく使われるのですが
例えば、IaC 化したソースコードの中に
ハードコーディングしたくない値があったときに AWS SSM パラメータストアを活用すると

ソースコード内に特定の値をハードコーディングする必要がなくなり
AWS SSM 依存ではあるもののより抽象的で汎用的な IaC 化が実現できる。

ハードコーディングって何ですか

決め打ちの値
例えば、どのファイルにおいても普遍の定数値やパスワード、URL などを
ソースコード内に埋め込むこと

実際の書き方

ami-name という変数名に AMI ID「ami-0992fc94ca0f1415a」を保存しておき
テンプレートで参照する場合はこんな感じになると。。。

test.yml

AWSTemplateFormatVersion: 2010-09-09
Resources:
  myEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      KeyName: PrivateEc2Key
      ImageId: '{{resolve:ssm:ami-name:1}}'
      InstanceType: t2.micro
      Monitoring: false
      NetworkInterfaces:
        - AssociatePublicIpAddress: false
          DeviceIndex: "0"
          GroupSet:
            - !ImportValue PrivateSecGrp
          PrivateIpAddress: "10.0.1.15"
          SubnetId: !ImportValue PrivateSubnet
      Tags:
        - Key: Name
          Value: PrivateEC2

'{{resolve:ssm:ami-name:1}}'

最後の 1 はパラメータのバージョン番号、変更管理に使う番号ということで間違いなさそう。(本当か?)

CloudFormation でセキュアストリングを使うときの注意点

CloudFormation において
セキュアストリングがサポートされている AWS サービスは決まっている。

ゆえに、Cloud Formation テンプレート内に隠したい文字列があるから使おう!という用途では使用できない。
また、セキュアストリングは Outputs で出力することはできない。

どうしてもセキュアストリングを Cloud Formation で扱いたい

Secrets Manager を使いましょう。

まとめ

AWS Systems Manager を扱うと運用を自動化したりセキュアな環境を維持したり
はたまた、特定のパラメータストアに値を保存することができる。

パラメータストアとは値を保管しておく場所のことである。

パラメータストアには平文、セキュアストリング、文字列リストを保存できる。
平文は暗号化されない文字列、セキュアストリングは暗号化される文字列であり
平文は見られても困らないモノにセキュアストリングは見られたくないモノに使う。

AWS SSM のパラメータストアで扱うセキュアストリングを CloudFormation で利用するときは
特定の AWS サービスにしか適用できず、また Outputs にも出力できない。

どうしてもセキュアストリングを扱いたい場合はパラメータストアのサービスである
AWS Secrets Manager を活用する。

おわり

0
0
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
0
0