第3章 セキュリティ・アーキテクチャ セキュリティ・アーキテクチャ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
APIセキュリティアーキテクチャの優れたアプローチは、懸念事項の分離の原則とオープンスタンダードを組み合わせたものである。こうすることで、セキュリティアーキテクチャは時間の経過とともに拡張・成熟し、必要なときに追加の関数やサービスで拡張することができる。
この章では、OAuth 2.0プロトコルの助けを借りて、ID管理、API管理、エンタイトルメント管理を組み合わせたAPIのためのクラウドネイティブセキュリティアーキテクチャを紹介する。この章では、関係するコンポーネントの概念的な概要と、クラウドネイティブ環境でAPIセキュリティを実装する際に考慮する必要がある点について説明する。
APIセキュリティアーキテクチャとは何か?
APIセキュリティアーキテクチャは、APIを保護するテクニックを記述する。一言で言えば、APIセキュリティアーキテクチャは、APIとAPIが公開するデータへのアクセスを安全にする方法を定義する。建物と同様に、アーキテクチャを構築するためには優れた基礎が必要である。設計、開発、テストからデプロイ、引退に至るまで、APIのライフサイクルを通じて継続的にアーキテクチャを維持する必要がある。たとえそれがあなたの主な焦点ではないとしても、API全体のセキュリティのために、安全なソフトウェア開発とデプロイのプロセス、ネットワークとトランスポートのセキュリティ、あるいはサーバのセキュリティのようなものを考慮する必要がある。APIセキュリティアーキテクチャを実装する際には、このような点に注意することを前提とする。
APIへのアクセスを確保するということは、API(データ)にアクセスする権利がある呼び出し側だけが、必要なときにアクセスできるようにすることを意味する。その結果、APIを保護する際には、誰がアクセスを要求しているのかを特定できる必要がある。このプロセスは認証と呼ばれている。また、権限をチェックし、アクセスを許可または拒否する必要がある。この概念を認可と呼ぶ。認可とは、ユーザとアプリケーションが正しいデータにアクセスできるようにするプロセスである。誰かが、あるいは何かが、あるデータにアクセスする権限があるかどうかを答えるには、そのエンティティが誰であるかを知る必要がある。その結果、認証と認可は密結合となる。
認可は、認証処理の結果、すなわち(ユーザの)属性を使用して、アクセスを許可す るかどうかの決定を行う(第9章も参照のこと)。したがって、認可プロセスの出力は、多くの場合、単純な「はい」(アクセス許可)か「いいえ」 (アクセス拒否)である。認証認可はゼロトラストアーキテクチャの中心部分である。クラウドネイティブAPIにゼロトラストアーキテクチャを実装するには、組織に特定のセキュリティ関数が必要である。
APIセキュリティアーキテクチャにおける関数
セキュリティ関数(Security functions) はセキュリティアーキテクチャの柱であり、セキュリティ実装を可能にし、推進し、所有する。以下の3つの関数は、API セキュリティアーキテクチャに関連する:
-
アイデンティティ管理
-
API管理
-
エンタイトルメント・マネジメント
3つの管理関数はすべて、APIを保護する上でそれぞれの役割を果たす。OAuth認可フレームワークは、これらを連携して動作させることを可能にする。それぞれの関数の振る舞いを詳しく見てみよう。 ...