序文
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
2016年、私は大規模なクラウド移行作業の一環として、クラウド・コンピューティング統制の作成を任された。これらのコントロールは、私たちの組織で採用され、組織内で作成された標準に基づいており、私たちのクラウド環境内での望ましくない、潜在的に危険な変更を予防するものだった。私はJavaのサブジェクト・マター・エキスパート(SME)であり、クラウドサービス・プロバイダ(CSP)は成熟したJavaソフトウェア開発キット(SDK)を提供していた。
私がJavaで書いた最初で最後の制御は、オブジェクト・ストレージ上の静止データの暗号化を強制するものだった。クラウド・コンピューティングには、私がセキュア・コンピューティングの基本だと考えている制御タイプがあり、静止データと転送中のデータの暗号化はそのリストのトップだ。
私はすぐに、膨大なクラウド・コンピューティング・サービスとそれぞれの機能のコントロールを実装するために、個々のプログラムやモジュールを構築して実行することは、スケーラブルでもなければ、簡単にサポートできるものでもないことに気づいた。SDKを利用するためのコードを書くのは、レベルが低すぎた。動きが遅すぎて、自分のアプローチを広く採用されるような形で共有するのは難しかった。標準とコントロールのSMEはJavaプログラマではなく、新しいコントロールを構築したり、すでに構築されたものをサポートするためだけにJavaを学ぶことは期待できなかった。
コードとしてのポリシーが必要だった
より抽象化されたソリューションが必要だった。ドメイン固有言語(DSL)に裏打ちされたソリューションで、クラウドコンピューティングの制御を指定する人々にとってより馴染みのある共通の語彙を提供するものだ。基礎となる実装にかかわらず、コントロールを定義するユーザは、コントロールの実装に使われるテクノロジーではなく、クラウドコンピューティングコントロールのエキスパートであるべきだ。私が選んだソリューションはCloudCustodian(c7n)だった。
C7nは私の同僚によって開発され、時を経てクラウド・コンピューティングのユーザやプロバイダーに広く採用されるようになった。c7nを使って、私たちはクラウド環境に規則エンジンをデプロイし、コントロールしやすいYAML DSLを使ってポリシーを書いた。さらに、このDSLは、c7nを構築するために使用されたPythonコードの知識を必要としなかった。C7nは、私が最初に使ったPolicy as Code(PaC)ツールだ。
注
参照点として、Policy as Code(PaC)-本書の焦点-は、規則と条件を管理し適用するためにコード成果物を使用することである。ポリシーエンジンとは、ポリシー決定を適用するためにポリシー成果物をインタプリタするプログラミングである。ポリシー成果物に定義された規則や条件は、作成または採用した標準やポリシーの実装に役立つ。コントロールとして知られるこれらの実装は、セキュリティ、コンプライアンス、ガバナンス、ベストプラクティスの決定を適用し、私たちがサポートし使用するシステム内の望ましくない変更を予防し、それに反応するように設計されている。
その経験から、私はセキュリティ、コンプライアンス、ガバナンスが進歩の妨げになる必要はないことを学んだ。私たちは、クラウドエンジニアが作業する際の境界線となるポリシーを作成した。さらに、エンジニアは従うべきコントロールを学び、クラウド環境への不要な変更を減らすことができた。私たちはc7nポリシーを他のコード成果物と同様に管理し、継続的インテグレーション(CI)と継続的デリバリ(CD)ツールを採用して、ポリシーとクラウド環境を更新し続けた。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access