4
1

More than 3 years have passed since last update.

AWSリソースのパスワード等を、AWS上で管理する

Posted at

何をしたいか

AWSで使用するDBパスワードなどの情報を、外部のパスワード管理ツールや、ましてやコード上で管理せずに、AWSサービスで管理するお話です。
今回はEC2サーバー内から利用するケースで考えます

EC2で必要とするパスワード、パラメータ

こんなものがあるかと思う

RDS, Aurora
・マスターパスワード
・ユーザーログイン情報
・エンドポイントなどの接続情報

EC2等
・OS内での保存しておきたいconfファイル
・接続情報

ユースケース

EC2から、RDSへMySQLログインする
ミドルウェア等の設定値を保存しておきたい
etc

どこで管理するのか

AWS Systems Managerのパラメータストアを使う

必要なプロセス

踏み台サーバーからRDSへアクセスするケースで考える

200531_2.png

EC2に必要なRoleを当てる

SSMへのアクセスが必要なインスタンスに、Roleをアタッチする

200531_3.png

EC2の場合、以下のポリシーをアタッチ

SSMへの必要な権限(権限を絞る場合)
※リソースもパスでもっと絞れる

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ssm:DescribeParameters",
            "Resource": "*"
        }
    ]
}

パスワードや設定値をパラメーターストアに保存する

200531_4.png
図の赤線はCLIの場合

コンソールの場合

SystemsManager > パラメータストア

スクリーンショット 2020-05-30 18.41.04.png
こんな画面で作成

設定項目に関して

利用枠
4KBもあれば、JSONパラメータをまるっと保存しても、まあまあ足りる気はするが、8KBに拡張することもできる。
この「詳細」を選択した場合の料金は、パラメータストア APIインタラクション1万回毎に、0.05USD

タイプ
「安全な文字列」は、AWSのKMSというサービスを使った
キーでの暗号化がされる
KMSのキーは、AWS管理のキーか、自身で管理したキーで暗号化するか選べる

CLIの場合の設定例

・パラメータストアに値を保存
※ "ssm:PutParameter" Actionの許可が別途必要

aws ssm put-parameter --name /sample/database/master/user --type "String" --value "user" --description "master username" --region ap-northeast-1

今回はRDSのユーザ名とする
名前:/sample/database/master/user
値:user
説明:master username

使うとき

200531_5.png

・パラメータの取得

aws ssm describe-parameters --filters "Key=Name, Values=/sample/database/master/user" --region ap-northeast-1

因みに今回は「タイプ」をStringで保存したが、暗号化した場合は"kms:Decrypt"の権限も必要。

運用のコツ

パスの管理

パラメータストアの管理は、システムの環境構成によって階層化した保存をしておくと
運用する際や、実際に引っ張ってくるときにとても楽


環境名/サーバー名/・・・
/Dev/DBServer/MySQL/db-string
/Stg/DBServer/MySQL/db-string

IAM Policyの話

使い慣れたら良いのですが、はじめからActionやResourceを絞ると大変な場合もあるので
はじめは緩めに作ってから、権限を絞るのが無難かもしれません。

SSMの良いところ

今回はパラメータストアだけ挙げましたが、安いし、運用面やセキュリティの観点でたくさんのメリットがあります。
さらに他のAWSサービスとの連携も容易で、例えばCloudFormationでテンプレートを流す際に使用することも可能です。

またちょいちょいメモしていきます。

4
1
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
4
1