Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraformのシークレット管理できていますか?# HashiCorp Vaultのすすめ

Terraformのシークレット管理できていますか?# HashiCorp Vaultのすすめ

短期間のリリースが求められるアプリ開発の現場では、ソースコードのコミットからデプロイまでの作業を自動化することが望ましいです。もっとも、自動化したパイプラインには、各ツールが連携するためのシークレットが存在し、これらの機密情報を安全に生成・更新・管理しなければなりません。本登壇では、自動化した開発現場におけるシークレット管理の課題を踏まえ、HashiCorp Vaultによる解決法および実際に導入する際のヒントをご紹介します

Maeno Yuuki

August 25, 2022
Tweet

Other Decks in Technology

Transcript

  1. © 2022 LAC Co., Ltd. シークレットにまつわるインシデント事例 シークレットの使いまわし 不必要な権限 記録不備 平文で開発者のPCに保管

    被害が拡大した4つの原因 A社開発者が管理するクラウドのシークレットが漏洩し、攻撃者が仮想通貨採掘のための 仮想マシンを構築し高額請求が発生した事例。 LAC救急センターレポート『2020春 特集 クラウドでのインシデント対応事例』 https://www.lac.co.jp/lacwatch/pdf/20200130_cecreport_vol8.pdf ※p.14参照
  2. © 2022 LAC Co., Ltd. Terraformのシークレットの課題 Terraformでは、クラウドプロバイダーに認証するためのシークレットが必要ですが、その 管理が十分でないケースがあります。 Terraform OSSの場合

    Terraform CloudまたはEnterpriseの場合 aws configureコマンドを使って、クラウドの 認証情報をローカルに平文で保管している 認証情報を暗号化しているが、権限の適切 さやローテーションの頻度を確認できない
  3. © 2022 LAC Co., Ltd. クラウドのシークレットのプラクティス(AWSの場合) AWSのシークレットの管理を向上する対策として、下記2つの手法があります。 1. Sensitiveオプションを有効化して、暗号化して保管する 2.

    IAM Roleを活用して、運用コストを削減する Terraform OSSやTerraform Cloudエージェントをホストする サーバに対して、プロビジョニングに必要な権限をAWS側 (IAM Role)で定義することで、権限変更時のシークレットの 設定を容易にすることができます。 ※ロールスイッチするためのIAM Userのシークレットの管理は 必要
  4. © 2022 LAC Co., Ltd. 開発現場全体におけるシークレットの課題 Terraformに限らず、開発現場ではあらゆるーシークレットが存在し、 漏洩のリスクに晒されています。 インフラ チーム

    開発 チーム ユーザー パイプライン プラットフォーム アプリケーション VM コンテナ DB ・ID・パスワード ・APIキー ・SSHキー ・クライアント証明書 ・APIキー ・認証トークン ・APIキー ・認証トークン ・ID、パスワード ・サーバ証明書 ・証明書の秘密鍵 個人が管理するシー クレットは、組織が 把握しにくい ソースコードから シークレットが漏洩 する場合もある サーバのシークレット 漏洩は、侵入やデータ 流出の危険がある プラットフォーム毎 に管理すると運用負 担が高い
  5. © 2022 LAC Co., Ltd. 開発現場全体におけるシークレットの課題 シークレット管理では下記2つの課題を解決する必要があります インフラ チーム 開発

    チーム ユーザー パイプライン プラットフォーム アプリケーション VM コンテナ DB 1. シークレットを人の手で発行・更新・廃止を行うことは、漏洩のリスクが高い 2. プラットフォーム毎にシークレット管理方法を決定すると運用負荷が高い
  6. © 2022 LAC Co., Ltd. 開発現場全体におけるシークレットの課題 -HashiCorpによる解決- シークレットを一元化し、自動管理することで漏洩のリスクを軽減できます インフラ チーム

    開発 チーム ユーザー パイプライン プラットフォーム アプリケーション VM コンテナ DB ・ID・パスワード ・APIキー ・SSHキー ・クライアント証明書 ・APIキー ・認証トークン ・APIキー ・認証トークン ・ID、パスワード ・サーバ証明書 ・証明書の秘密鍵
  7. © 2022 LAC Co., Ltd. HashiCorp Vaultとは •Vault(ヴォルト、金庫)を指す •「シークレット管理」「データプロテク ション」の2つの機能

    •提供形態は、ソフトウェア及びSaaS •金融機関や製造業等の高いセキュリティ レベルが要求される組織でも採用
  8. © 2022 LAC Co., Ltd. Vaultによるシークレット管理ワークフロー クライアント IDプロバイダー シークレットプロバイダー 開発者

    アプリケーション ログイン 認証連携 シークレットの 発行を要求 シークレットの 発行を要求 シークレットを返却 シークレットを返却 シークレット管理システム 有効期限を付与 暗号化 ポリシーチェック Vaultを導入することでシークレット管理の自動化と一元化を実現できます 監査証跡
  9. © 2022 LAC Co., Ltd. ユースケース -GitHub Actionsによるパイプライン構築例- 開発者 ①コードコミット

    ジョブ実行 actions GithubActions実行時に必要なシークレットの管理をVaultで一元化・自動化することができます。 ②シークレットの要求 ③シークレットの作成要求 ②シークレットの返却 ④IAM Userの作成 ⑤アクセスキーおよび シークレットキーの返却 プロビジョニング ※参考-HashiCorp Vault + GitHub Actions OIDC を使った workflow からの安全なシークレットアクセス https://zenn.dev/jrsyo/articles/e954e907dcedeb 例:TerraformでAWSを構築するパイプラインの場合
  10. © 2022 LAC Co., Ltd. ユースケース -GitHub Actionsによるパイプライン構築例- 開発者 ①コードコミット

    ジョブ実行 actions GithubActions実行時に必要なシークレットの管理をVaultで一元化・自動化することができます。 GitHub ActionsがVaultにログインする際には、 Github OIDCの認証方式を利用することで、認証情 報の管理が容易になります。 https://docs.github.com/ja/actions/deployment/s ecurity-hardening-your-deployments/configuring- openid-connect-in-hashicorp-vault ②シークレットの要求 ③シークレットの作成要求 ②シークレットの返却 ④IAM Userの作成 ⑤アクセスキーおよび シークレットキーの返却 プロビジョニング 一定時間後にVaultがIAM Userを削除す ることで、シークレットに有効期限を つけることができる。 https://www.vaultproject.io/docs/sec rets/aws#aws-secrets-engine ※参考-HashiCorp Vault + GitHub Actions OIDC を使った workflow からの安全なシークレットアクセス https://zenn.dev/jrsyo/articles/e954e907dcedeb 例:TerraformでAWSを構築するパイプラインの場合 今秋からHCP Vaultの日本リージョンでの提供が開 始され、Vaultの利用形態について幅が広がります。 https://japan.zdnet.com/article/35191382/
  11. © 2022 LAC Co., Ltd. HashiCorp Vaultを採用する利点 1. Dynamic Secrets

    シークレットの交付・更新・廃止を自動化することで、人的ミスによる漏洩のリスクを削減します。 2. マルチ/ハイブリッドクラウド、APIドリブン 多数のシークレットの種類に対応すること、既存のワークフローに組み込むことができ、シーク レットの一元化を実現します。 シークレット管理の課題についてVaultを採用すべき理由は大きく分けて2つあります。
  12. © 2022 LAC Co., Ltd. Vault Users Group Japan HashiCorp

    Japanが運営するVaultのユーザーコミュニティです。 Vaultを使っている人、これから使ってみたい人は誰でも参加可能です。 Vaultに関連するイベント情報やリリース情報を入手することができますのでぜひご参加くだ さい。 こちらのページのslack招待リンクから参加することができます。 https://vault.connpass.com/
  13. © 2022 LAC Co., Ltd. 株式会社ラック ラックは、サイバーセキュリティとSIの会社ですが お客様のクラウド運用の課題を解決し、組織のIT戦略を最適化するための新たな提案を行うべく、 2018年にHashiCorpと協業を開始しました。 2021年には、HashiCorp社より、国内企業として初めてHashiCorpリセラーの最高ランクである

    Hyper-Specialized Partnerに認定されました。 https://www.lac.co.jp/news/2021/06/29_news_01.html 本日のテーマであるHashiCorp Vaultについても、国内の販売・導入・構築実績がございます。 シークレットを含むクラウド運用についてお悩みの方は、ぜひラックにご相談ください ラック HashiCorp製品ページ https://www.lac.co.jp/solution_product/hashicorp.html ラック HashiCorp製品お問合せ窓口 [email protected]