ビルダーのビルダーによるビルダーのためのセキュリティ
桐山 隼人
ビルダーの皆様、こんにちは。シニアセキュリティソリューションアーキテクトの桐山です。
皆様は、AWS 環境においてどのようにセキュリティを実現していますでしょうか ?
セキュリティ考える余裕が無い、セキュリティ実現したいけど方法が分からない、セキュリティやってみたけど運用が回らない、など多種多様なお悩みを私は今まで聞いたことがあります。
そのような皆様に向けて、今後数回にわたり、ビルダーとセキュリティを取り上げた連載をお届けしよう思います。
このシリーズ記事のその他の記事はこちら
- 選択
- ビルダーのビルダーによるビルダーのためのセキュリティ »
- セキュリティを何から始めれば良いか分からない開発者の方へ »
- DevSecOps パイプラインを構築してみよう ! »
- Amazon Inspector と AWS Systems Manager を用いて脆弱性の修復パイプラインを構築しよう
- マルチテナント SaaS アプリケーションの認証を Amazon Cognito で実現してみよう !
- すぐに始めて、継続できる AWS のセキュリティ対策
そもそもビルダーって何 ?
革新的なサービス開発でイノベーションを実現し、失敗を恐れない自由を獲得し、継続的なデプロイで開発サイクルを迅速に回す人のことを、AWS では “ビルダー (Builder)” と呼んでいます。ビルダーは、早いサイクルで、成功に向けた取り組みを進めていくことで成功確率を上げていきます。つまり、“はやく前向きに失敗する (Fail Fast and Forward)” ことが成功へ近づくために重要なことです。
AWS クラウドは、最新技術をコスト最適で素早く利用できるため、ビルダーが “実験 (Experiment)” できる場としても適しています。アイディアと実行力があれば資本の大きさに関わらず挑戦できる環境とも言えますね。
ビルダーのセキュリティ (Security of Builder)
“セキュリティ (Security)” という言葉の由来は “心配から離れる” という意味と言われています。安心・安全な状態ですね。
この写真にあるくらい小さい子ども達は、皆ビルダーと言えます。何にも縛られずに自由に実験を繰り返します。
例えば、この積み木ブロック、何度も試行を重ねて、納得のいく素晴らしい設計、アーキテクチャを組もうとする、まさにビルダーですね。自由な発想をする可愛い子どものために、堅牢な建物に閉じ込め外に出さないとはしないはず。子どもに自由にすくすくと育つ環境でありつつ、安心・安全を提供する、そのような難しいチャレンジをしたいからこそ、セキュリティという技術は進化してきました。
ビルダーによるセキュリティ (Security by Builder)
ここから皆さんの業務におけるセキュリティについて考えていきましょう。
どんな業界・規模の企業もセキュリティは意識しています。それに呼応するようにセキュリティ製品・サービスは巷に溢れています。それ自体は素晴らしいことです。一方で、セキュリティとはとかく状況に依存するものでもあります。皆さんが所属している会社毎に、業界が異なり、ビジネスモデルが異なり、事業の成長ステージが異なり、扱うアプリケーションやデータが異なるので、そのような状況に基づいたセキュリティ実装はその企業にしかできません。
- ビジネス要件に基づく IT 環境 (OS 、ミドルウェア、アプリケーションなど)
- ビジネスで扱う重要データの属性
- 企業内の他システムとの連携
状況の変化が激しい中、上記のような観点をセキュリティ実装に継続的に反映させるためには、皆さん自身がビルダーとなってセキュリティを作っていかなければなりません。
たとえば、皆さんの会社で新しいサービスやアプリケーションを開発して運用する場面を思い浮かべてみてください。
最近では、DevOps という言葉で、顧客との相互やりとりを素早く効率的に行う開発運用の在り方を表現することが多いと思います。この DevOps は、組織文化 (Culture)、手法 (Practices)、ツール (Tools) の 3 つの要素が全て揃うことで導入が現実になります。DevOps を実現する組織は、開発運用全体のライフサイクルに責任を持たなければなりません。そして、こちらの図にあるような開発運用におけるセキュリティも考慮しなければ、全体ライフサイクルの責任を全うできないでしょう。
セキュリティを作る上で、やるべきことは沢山ありそうです。そのために重要なことが、セキュリティの自動化です。特に、クラウドの利用が当たり前となった時代において、セキュリティ自動化は必要不可欠です。
クラウド環境の特長の 1 つとして、その拡張性が挙げられます。データ処理量の需要拡大に応じて、容易に、更に言えば自動的に、IT 資源が拡張します。常に安心・安全な環境を求めるのであれば、セキュリティも自動的に追従して拡大されなければなりません。AWS クラウドではセキュリティを標準機能として組み込むことができるため、自動的なセキュリティ拡張の実現が容易になります。
たとえば、Auto Scaling で自動拡張する Amazon EC2 仮想サーバーは、起動した瞬間から AWS Identity and Access Management (IAM) という認証認可機能や Amazon VPC というネットワークセキュリティ機能が標準で利用できます。
次に、プラットフォームに標準機能としてセキュリティが組み込まれることで、今まで以上にセキュリティ関連のログや検出事項が出てきます。今まで見えていなかったものが見えるようになったこと自体はとても良いことです。一方で、従来のやり方のままではセキュリティ監視・分析・監査などに必要な労力や時間が増えてしまうことになるので、自動化による効率化の余地が大きい領域でもあります。たとえば、Amazon GuardDuty による脅威検知、AWS Security Hub によるセキュリティリスク可視化、AWS Audit Manager による自動証跡収集などは、セキュリティ関連業務効率化に寄与します。
そして、自動化は信頼性を向上させるという効果もあります。人間が手動で作業することで生まれやすい品質のバラつきは、ツールによる自動化で一定以上の品質が担保されます。また、AWS セキュリティの原理原則に “人をデータから切り離す (Keep the people away from the data)” というのがあります (参考 : AWS re:Invent 2017: AWS Security State of the Union)。重要データに人間がアクセスするのは事故の元という考え方です。重要データにアクセスするのはツールのみにし、ツールを開発・構成したり使用可能な状態にするのが人間の仕事であると言っています。
ビルダーのためのセキュリティ (Security for Builder)
ここまでセキュリティを作る話をしてきましたが、それは何のためかというとビジネスの成功のためです。ビジネスの成功のために、主に事業部門 (Line of Business : LoB) にてサービス開発が行われますが、その開発に従事されている方ももちろんビルダーです。ここからはビルダーのためのセキュリティがどういうものか考えてみましょう。
従来、事業部門から見たセキュリティ部門は、“門番 (Gatekeeper)” のような存在だったかもしれません。サービス開始前のリリース判定会議でセキュリティレビューを実施、「項目 X 番のセキュリティルールに遵守していないので、やり直してください」などのやり取りが行われていると聞いたことがあります。実際、私がソフトウェア開発者だった時にこのようなことを体験しました。当時は、多くの工数を割いて対応していましたし、それが当たり前だとも思っていました。しかし、振り返ってみると、結果としてサービスリリースの時期が遅れ、ビジネスの機会損失につながるので、もっと良いやり方があったのかもしれません。
これに対して、AWS ではセキュリティは、“ガードレール (Guardrail)” のような存在であるべきと考えています。「このガードレールの中の道にいる分には、あなたの好きなように走っていいですよ」という意味合いです。早くサービスリリースしたい人、じっくり検証したい人、色々な実験を繰り返したい人、どんな種類のビルダーであろうと、このガードレールが守ってくれます。
これまで来た道を止める存在であった門番から、ここから行く道を示す存在であるガードレールに、セキュリティの役割が変わりつつあると言えるでしょう。このようなパラダイムシフトが起きるのも、クラウドという新しい技術の台頭によるところが大きいかもしれません。なぜなら、クラウドの特長がガードレールの実現を容易にしたからです。
クラウドの特長として、Infrastructure as Code という概念がよく使われます。サーバー、ネットワーク、ストレージなどのインフラをプログラムコードで記述し、ワンクリックでそのインフラが構築されるという特長です。プログラミングによるソフトウェア開発と同じようなやり方でインフラも作れてしまいます。
このような環境になったことで、セキュリティも規範的 (prescriptive) にコード記述できるようになりました。まだ存在していないシステムのセキュリティを先にコード記述しておけますし、ワンクリックでシステムが構築されると同時にセキュリティ実装もなされます。結果としてガードレールの敷設が、いつでもどこにでもコスト最適でできるようになったのです。
ガードレールの一例として、AWS Innovation Sandbox ソリューションというものをご紹介します。 まさに、イノベーションを起こしたいビルダーが実験的な場として利用できるサンドボックス環境です。安心・安全な実験場を作る上で、AWS Organizations による AWS アカウント管理、AWS CloudTrail による監査用操作ログ取得、データ漏えいを防ぐため Amazon AppStream 2.0 によるブラウザベースアクセスなどが含まれています。AWS 環境において、開発しているアプリケーションの実証実験 (Proof of Concept: PoC) をしてみたい方は是非ご参照ください。
さいごに、こんなに上手くいくもの ?
以上、ビルダーとセキュリティの話をしてきました。クラウド技術を使うことで、ビジネスを成功に導くセキュリティが実現しやすくなったと言えます。皆さんの会社でも実現できそうでしょうか ?
「そんな簡単にはいかないのよ」という声が聞こえてきそうです。この記事ではまだ、前述の DevOps 要素である手法 (Practices) とツール (Tools) の例を述べただけで、組織文化 (Culture) に触れていないからかもしれません。
セキュリティはセキュリティ専門チームだけのものではありません。企業に属する全員がセキュリティ意識を持った文化を維持する必要があります。組織文化は企業毎に異なるので一般化はできないため、ここでは AWS ではどのようにやっているかを紹介しようと思います。
AWS が実施しているセキュリティプログラムに Security Guardian というものがあります。Security Guardian というのは、セキュリティ専門チームではなく、サービス開発チームの中にいるセキュリティリーダーで、そのチームのセキュリティ遵守を助ける守護者です。あらゆるチームに Security Guardian がいるというのがポイントです。
組織横断で Security Guardian コミュニティが作られ、サービス開発チームと一緒に、自然にセキュリティ人材と能力が育成される仕組みになっています。このようなプログラムを AWS では実施し、セキュリティ文化を醸成するための一つの方法としています。
文化とは醸成された結果です。では、醸成するにあたって最初に何が無ければならないでしょうか ?
文化を醸成する元となるものを、AWS ではテネッツ (Tenets) と呼んでいます。英和辞書を引くと教義や信条という日本語訳が出てきます。右図は AWS セキュリティチームの Tenets です(参考:AWS re:Inforce 2021: Scaling security, one human at a time)。このような価値観を持って業務に取り組んだ結果としてセキュリティ文化が出来上がります。
そして最後に、図の右下書いてある (unless you know better ones...) という文言を説明します。直訳すると「これより良いものが無い限りは」という意味ですね。この Tenets も、今これが良いとして定義したものですが、もし環境が変わって、それに適したより良いものが見つかったら、更新することも厭わないという意思表示です。
一度決めたとしても、それがまるで形骸化したルールのように組織や人を縛り付けるものになってはいけません。AWS では、何かを決める時、これを魔法の言葉のように付け加えて、常により良いものを探し続けるということを心掛けています。仮に失敗したとしても早く前向きに失敗して、次のより良いものを求める、これもビルダーのビルダーによるビルダーのためのセキュリティ文化の一端と言えるのかもしれません。
次回からは、ビルダーに向けたセキュリティ実装方法やワークショップのご紹介などをしていく予定です。ビルダー向けの AWS セキュリティサービスや新しい機能にも触れていくので、連載をお楽しみにしてください !
このシリーズ記事のその他の記事はこちら
- 選択
- ビルダーのビルダーによるビルダーのためのセキュリティ »
- セキュリティを何から始めれば良いか分からない開発者の方へ »
- DevSecOps パイプラインを構築してみよう ! »
- Amazon Inspector と AWS Systems Manager を用いて脆弱性の修復パイプラインを構築しよう
- マルチテナント SaaS アプリケーションの認証を Amazon Cognito で実現してみよう !
- すぐに始めて、継続できる AWS のセキュリティ対策
プロフィール
桐山 隼人
アマゾン ウェブ サービス ジャパン合同会社
シニアセキュリティソリューションアーキテクト
学生時代は Fortran, C, C++ による構造解析シミュレーション、新卒入社した外資系 IT 企業開発研究所では、Embedded C++, Java などで組み込みシステムを開発していました。現在は、日本およびアジアパシフィックの AWS 利用者のビジネス課題、技術課題の解決を支援しています。子育て奮闘中です。
ビルダーの方がビジネスに集中できるセキュリティ環境をお届けすることが、私の テネット (Tenet) です。子どもたちが思いっきりリスクを取れるように安心・安全な環境を提供することもテネット (Tenet) です。
AWS を無料でお試しいただけます