LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

Facebook X Instagram
ラックピープル | 

AWS CloudFormationにおけるシークレット情報の漏えいケースとその対策

デジタルペンテスト部の多羅尾です。

DevSecOpsの普及により開発・運用・セキュリティを早期に統合する組織が増えるとともに、インフラ構築に対するIaC(Infrastructure as Code)の利用もまた拡大しています。その背景として、IaCはインフラをコードで定義・構築できるため、クラウドの開発環境でセキュリティを確保した同一構成を、検証環境や本番環境に再現しやすいという利点があげられます。その一方で、取り扱い方によっては、インフラやリソースのシークレット情報が漏えいしてしまう恐れがあります。

本記事では、AWS(Amazon Web Services)でIaCを実現するAWS CloudFormation(以下、CloudFormation)の取り扱いミスにより、AWSリソースのシークレット情報が漏えいする例とその対策について紹介します。

CloudFormationの取り扱いミスによるシークレット情報の漏えい

今回は、図1にあるようなCloudFormationにより構築するシステムで、Amazon RDS(Relational Database Service)のシークレット情報が漏えいする例を3つ紹介します。

CloudFormationにより構築するシステム構成
図1 CloudFormationにより構築するシステム構成

パラメータセクション表示による情報漏えい

1つ目は、CloudFormationのパラメータセクションにシークレット情報が表示されている例です。利用者がシークレット情報を設定できるようにCloudFormationのコードで定義しているケースで、パラメータとして渡した値が表示され情報が漏えいします。

パラメータセクション表示による情報漏えいケース
図2 パラメータセクション表示による情報漏えいケース

コード内への直接記入による情報漏えい

2つ目はシークレット情報をCloudFormationのコード内に直接記入している例です。当該コードを閲覧できればシークレット情報が表示され漏えいにつながります。

コード内への直接記入による情報漏えいケース
図3 コード内への直接記入による情報漏えいケース

出力セクション表示による情報漏えい

3つ目はCloudFormationの出力セクションにシークレット情報が表示されている例です。出力セクションの値はパラメータの値や作成したリソース値を確認するほか、別のCloudFormationが値を参照する際も利用されます。これらの値が閲覧できれば、攻撃者はシークレット情報の取得が可能となります。

加えて、シークレット情報の取得によりAmazon RDSに接続されてしまうと、データベースへの接続も可能となってしまいます。

出力セクション表示による情報漏えいケースとデータベースへの接続
図4 出力セクション表示による情報漏えいケースとデータベースへの接続

対策

これらの対策として、CloudFormationでシークレット情報を直接取り扱うのではなく、AWSが提供するAWS Secrets Manager(以下、Secrets Manager)やAWS Systems Manager Parameter Store(以下、Parameter Store)を用いて、シークレット情報の管理構成を定義する手段があります。

図5は、Secrets ManagerでAmazon RDSのシークレット情報を管理するよう定義したCloudFormationのコードとなり、コード内にシークレット情報が存在しないことがわかります。AWSの一部のサービスでは、Secrets ManagerやParameter Storeとの連携がサポートされています。Amazon RDSは当該サービスに含まれており、Secrets ManagerとAmazon RDSが連携している例です。

対策版のCloudFormationのコード
図5 対策版のCloudFormationのコード

さいごに

本記事では、CloudFormationにおいてシークレット情報が漏えいする例と、その対策について紹介しました。

情報漏えいの例として、CloudFormationへの入力値や出力値にシークレット情報が含まれるケース、ならびにCloudFormationのコード内に直接記載するケースを取り上げました。シークレット情報の漏えいを防止するため、これらの情報をCloudFormationに含めないことを推奨します。

本記事がお役に立てれば幸いです。

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • 管理外のシークレットを効率よく探し出す「HCP Vault Radar」とは

    管理外のシークレットを効率よく探し出す「HCP Vault Radar」とは

  • AWSにおけるシークレット情報の取り扱い方と設定不備による脅威

    AWSにおけるシークレット情報の取り扱い方と設定不備による脅威

  • IaC(Infrastructure as Code)導入ガイド~基本知識、効果、ツール選定のポイント

    IaC(Infrastructure as Code)導入ガイド~基本知識、効果、ツール選定のポイント

page top