0
1

AWS SecretsManager をCFnで作成

Posted at

資格勉強では内容を知っているだけで、実際に触ったことがなかったため、今回は初めてAWS Secrets Managerの設定を行います。RDSの認証情報を管理するために利用します。

AWS SecretsManagerとは

AWS Secrets Managerは、データベースのユーザー名やパスワード、APIキー、OAuthトークンなどの機密情報を安全に保管・管理するサービスです。AWSリソース(例えばECSやLambda)は、適切なIAMロールを使ってSecrets Managerから認証情報を取得することができます。これにより、開発者がパスワードなどを手動で管理する必要がなく、セキュリティが向上します。

また、Secrets ManagerはLambdaと組み合わせることで、パスワードの定期ローテーションが可能です。

CloudFormationを使えば、シークレットの作成や管理を自動化でき、パスワードのランダム生成も行われるため、手動で入力する必要がないのはすごく便利ですね!

CloudFormationで作成する場合の注意点

RDSインスタンスなどのAWSリソースとSecrets Managerを統合する場合は、SecretTargetAttachmentの設定が必要です。これは、シークレットとリソースを関連付けるためのものなので忘れずに

AWSマネジメントコンソールを使う場合は、これらの設定がバックエンドで自動的に処理されるため、ユーザーが明示的に設定する必要がないとのこと

CloudFormationで作成されたシークレットの確認方法

AWS Secrets Managerのコンソール画面にアクセスし、確認したいシークレットを選択します。
Secret valueの項目のRetrieve secret valueを押すと確認できます。(権限がある方のみ閲覧可能です!)

リソースの例(一部)

{
    "Resources": {
        "CloudFormationCreatedSecret": {
            "Type": "AWS::SecretsManager::Secret",
            "Properties": {
                "Description": "Simple secret created by AWS CloudFormation.",
                "GenerateSecretString": {
                    "SecretStringTemplate": "{\"username\": \"saanvi\"}", # ユーザ名をテンプレートとして指定
                    "GenerateStringKey": "password", # パスワードを自動生成
                    "PasswordLength": 32 #パスワードの長さを指定 
                }
            }
        }
  
  ## Secrets Manager: Secret Target Attachment
  SecretTargetAttachment:
    Type: AWS::SecretsManager::SecretTargetAttachment
    Properties:
      SecretId: !Ref SecretForRDS  # 作成したシークレットのIDを参照
      TargetId: !Ref MyRDSInstance  # 対象となるRDSインスタンスのID
      TargetType: "AWS::RDS::DBInstance"  # 対象リソースのタイプを指定

今回はCloudFormation(CFn)を使ってシークレットを作成したので、とっても楽でした!
CFnのリソースについてはAWS公式ドキュメントに詳細が載っているので、それを参考にしながら作成しました。まだまだ理解できていない部分もありますが、少しずつ頑張っていきたいと思います!

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