OPS

AWS re:Invent2022 セッションレポート

【AWS re:Invent2022】Infrastructure as codeのセキュリティ管理方法は?

2022.12.01

本記事のポイント

AWSが主催するクラウドコンピューティング最大のイベント「AWS re:Invent」が、2022年11月28日~12月2日にかけてアメリカのラスベガスにて開催されます。本ブログでは、AWS re:Inventに実際に参加したエンジニアから、イベントの様子やKeynote(基調講演)の現地レポートをいち早くお届けします。

今回は、11/28(月)14:30~15:30(現地時間)に実施されたEric Beardによる基調講演の内容をお伝えします。



AWS re:Invent とは?

re:Inventとは、Amazon Web Services(以下、AWS)が主催するAWSに関するセッションや展示ブース、試験準備のためのブートキャンプやゲーム化された演習などを通じて、参加者が主体的に学習できるAWS最大のイベントです。

昨年も今年同様でラスベガスとオンラインにて開催されており、85以上の新サービスや新機能が発表されました。昨年の参加人数はオンサイト参加者2万人以上、バーチャル参加者は60万人以上になります。

Breakout Sessionの現地レポート(Day1、Eric Beard)

2回目のBreakout Sessionレポートとなる今回は、11/28(月)14:30~15:30に開催されたGovernance and security with infrastructure as codeに関する講演をリポートします。

公式サイトによるセッション紹介を日本語訳すると、以下のような内容になります。

“このセッションでは、AWS CloudFormationとAWS CDKを使用して、セキュリティ管理を実施しながら規制のある環境にクラウドアプリケーションを展開する方法について学びます。

cdk-nagで問題を早期に発見し、cfn-guardでパイプラインを検証し、CloudFormation hooksで意図しない変更からアカウントを保護する方法について学びます。”

登壇者

登壇者はこちらの方です。

会社名 登壇者 役職
Amazon Web Services Eric Beard Solutions Architect, AWS David Hessler, Senior DevSecOps Consultant

内容

こちらのセッションは複数会場で同時に行われていました。私は、話者とは違う会場でセッションを聞いていました。

別会場でセッションを遠隔で聴く場合は、写真のように配られるヘッドセットを使用します。

この会場では他のセッションも同様に開催されており、ヘッドセットの電源ボタンを押すとヘッドセットの色とともに公演の内容が変わります。

このセッションは赤か紫を選択すると聞くことが出来ました。最初は赤のみ音声トラブルがあり何も聞こえなく、紫を選択する人もちらほらいます。

すぐにトラブルは解消されたため私は赤で聞くことにしました。

このセッションはInfrastructure as code(IaC)におけるセキュリティや統制についての話でした。

IaCとはインフラの構築をコードとして行うことです。AWSではCloudFormationやCDKなどのサービスがそれに該当します。

複数の環境構築を同じコードで行うことができるようになるのでとても便利なサービスですが、それらのセキュリティをどう管理すれば良いかというセッションでした。

セキュリティ管理のタイプは大きくDirective,Preventative, Detective, Responsiveの4つに分類されます。Directiveは直訳すると指令、命令などの意味ですが、コードレビューやレジリエンステスト、コードの質を上げることがこれにあたるそうです。

  • Preventativeは予防の意味で、ユニットテストやPre-commit hooks、SCPsなどを使用しミスが起きないように事前に防ぎます
  • Detecticeは何かセキュリティに異常がないかなど検知するという意味です
  • Responsiveは何かセキュリティの問題があった時の対応という意味です

  • デプロイ後は「検知」→「修正」→「再デプロイ」という流れでセキュリティの問題を解決します。

    AWS Identity and Access Management Access AnalyzerやCloudFormation drift detectionを使って検知し、下の図のような流れで顧客に通知させるのがいいでしょう。

  • CloudFormation drift detectionはインフラの手動の変更を検知する機能です
  • CloudFormationを使ってインフラを構築した後、手動で変更を加え、さらにその後CloudFormationのコードの記述を修正し再構築した場合、手動で設定した部分が消えてしまいます。これを検知してこのようなシナリオが起きないように出来ます

  • CloudFormationやCDKを使う際にセキュリティに問題がないかチェックしてくれる便利なツールについても説明がありました。

    CDKを使う際はcdk-nagを使うことで、あらかじめ設定したルールに準拠しているかチェックし、セキュリティの問題を早期に検知することができます。cdk-nagはcfn-nagに触発されたオープンソースで、AWS公式ブログでも紹介されています。

    またcfn-guardではルールを設定でき、デプロイする前にそれに準拠しているかチェックすることでより安全なデプロイが可能になります。

    こちらもAWS公式ブログで紹介があります。

    まとめ

    CloudFormationやCDKはインフラ構築をコードとして保存することができるため、複製や再構築する際に便利なサービスです。

    それらのセキュリティの問題に対処するためには、ルールを設定し、異常を検知し、修正するというサイクルを整えることが大切です。

    cdk-nagやcfn-guardをはじめとしたツールはこのサイクルを効率化する手助けになります。コードによるインフラ構築をする際は、安全性を考えてぜひ導入したいところです。