😊

Secrets Manager 利用から Parameter Store 利用に変えたメモ

に公開
  • ECSで利用する機密情報の管理に、よく調べもせずSecrets Managerを使っていた
  • ある日コストを見たら数ドル/月かかっていた
    • 個人開発的には特に見過ごせない
  • System Manager Parameter Store利用に変更して数ドル節約した

  • Secrets Manager 料金
    • シークレットあたり USD 0.40/月

https://aws.amazon.com/jp/secrets-manager/pricing/

  • AWS Systems ManagerParameter Store でも、SecureStringパラメータを利用して機密情報を管理できます
    • 機密データを管理するために、SecureString パラメータを作成できます。Parameter Store は、SecureString パラメータを作成または変更する際に、AWS KMS keysを使用してそのパラメータ値を暗号化します。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/secure-string-parameter-kms-encryption.html

  • System Manager Parameter Store 料金
    • パラメータストア
      • スタンダード: 追加料金なし
        アドバンスド: 1 か月ごとにアドバンスドパラメータ当たり 0.05 USD (パラメータの保存期間が 1 か月に満たない場合は 1 時間ごとに按分されます)

    • API インタラクション
      • パラメータの種類がスタンダードで、スループット上限を引き上げない場合は、無料
      • パラメータの種類がスタンダードでも、スループット上限を引き上げると、 パラメータストア API インタラクション 1 万回ごとに 0.05 USD

https://aws.amazon.com/jp/systems-manager/pricing/

  • アドバンスドとは
    • 多くのパラメータ合計数や、パラメータ値の最大サイズを上げたい時などに利用する
    • 少なくとも自分のユースケースではアドバンスドにする必要はなかった

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/parameter-store-advanced-parameters.html

  • スループット上限について
    • GetParameter等の参照のスループットの上限
    • デフォルトだと40TPS(Transaction per second)
    • GetParameterは10000TPSに引き上げることができる
    • 例えば、ECSで複数タスクを一斉に起動してrate limitに引っかかって起動できず、というケースが有り、これの対処として引き上げを行える
    • この引き上げも自分のケースでは不要だった
    • ↓参考情報

https://docs.aws.amazon.com/general/latest/gr/ssm.html
https://qiita.com/tomoya_oka/items/a3dd44879eea0d1e3ef5

  • ECSでの設定
    • 機密情報は、環境変数としてコンテナに渡すことが、セキュリティ上のベストプラクティスです。Amazon ECS タスク定義内のコンテナ定義にある、AWS Systems Manager Parameter Store または AWS Secrets Manager に格納されている値を参照することで、コンテナにデータを安全に挿入できます。その後、機密情報を環境変数として、またはコンテナのログ設定の中で公開することができます。

    • ↓具体的な手順

https://repost.aws/ja/knowledge-center/ecs-data-security-container-task

  • Secrets Manger と Parameter Store の使い分け
    • 自動ローテーションが必要な場合はSecrets Managerを利用する

https://dev.classmethod.jp/articles/secretsmanager-or-parameterstore/

Discussion