メインコンテンツへ移動
SAA-C03Secure Architectures難易度標準

SAA-004

アプリケーションがRDS for MySQLへ接続します。DB認証情報をソースコードや環境変数に平文で保存したくありません。認証情報を安全に保存し、定期的なローテーションも考慮する場合、最も適したサービスはどれですか?

選択肢

解説と正解

解説と正解を読む(先に自分で回答してから開くのがおすすめです)

正解:C. AWS Secrets Manager

解説

DBパスワードなどの秘密情報はAWS Secrets Managerで管理できます。RDSとの統合やローテーションにも対応できます。

選択肢ごとの解説

A. Amazon S3の公開バケット

公開バケットに秘密情報を置くのは重大なセキュリティリスクです。

B. Amazon CloudWatch Logs

CloudWatch Logsはログ保存サービスであり、秘密情報の保存先ではありません。

C. AWS Secrets Manager

正解です。秘密情報管理とローテーションに向いています。

D. AWS Budgets

AWS Budgetsは課金監視サービスです。

実務での使いどころ

AWS Secrets Manager は、データベースパスワード、API キー、OAuth トークンといった機密情報を安全に保存・取得するためのマネージドサービスである。RDS / Aurora / Redshift などのデータベースに対しては、Secrets Manager がローテーションを直接サポートしており、Lambda ベースのローテーション関数を介して定期的にパスワードを変更し、DB 側と同期する運用が標準化されている。アプリケーションは Secrets Manager API(または AWS SDK の自動キャッシュ機能)でシークレットを取得し、コードや環境変数に平文の認証情報を持たせない構成にできる。 類似サービスとして AWS Systems Manager Parameter Store の SecureString パラメータがあるが、こちらは標準ティアが無料で利用できる代わりに、自動ローテーションは標準では提供されない(自前で Lambda を構成する必要がある)。シークレット数が少ない場合や、ローテーションが不要な静的シークレット(外部 API キーなど)であれば Parameter Store、DB のような自動ローテーションが必要なケースでは Secrets Manager、と使い分けるのが一般的である。Secrets Manager はシークレットあたりの月額固定費と API コール課金が発生するため、コストと運用負荷のバランスで選ぶ。 SAA-C03 では「DB 認証情報を安全に保存し、定期的にローテーションしたい」「ハードコードや平文環境変数を避けたい」という要件で Secrets Manager が正解となる。CloudWatch Logs や S3 公開バケットを保存先に挙げる誤答は、ログ用途・公開ストレージという別目的のサービスを当てる典型パターンである。Parameter Store SecureString との比較や、IAM ポリシーによる Secret 単位のアクセス制御も上位試験で問われる。

関連リンク

関連サービス