原文はこちら
https://blogs.oracle.com/cloud-infrastructure/explore-speedle-for-open-source-authorization-in-cloud-native-environments
Speedleは以下のコンポーネントを持っています:
https://blogs.oracle.com/cloud-infrastructure/explore-speedle-for-open-source-authorization-in-cloud-native-environments
Oracleによって開発されたオープンソースのポリシー管理、執行ソリューションであるSpeedleがOracle Cloud InfrastructureでGA(General Availability)となったことをお知らせできることを嬉しく思います。この汎用ポリシーエンジンにより、複数のアプリケーションをまたいで統一された、コンテクストアウェアなポリシーの執行が可能になります。Speedleはクラウドネイティブな環境内でのセキュリティおよび認可ポリシーの設定、管理、執行を劇的にシンプルにします。
これまでの状態
多くの企業ではより俊敏に、また、早いペースでの革新を可能にするため、既存のアプリケーションのモダナイズを行っています。マイクロサービスベースのアーキテクチャを用いることで、チームは個々のサービスを独立してテストし、アプリケーションに継続的に更新をリリースすることができます。企業の中で開発され、利用されるアプリケーションの数は急速に増えています。
クラウドネイティブとDevSecOpsはアプリケーションと機能のリリースの運用におけるばらつきとヒューマンエラーの抑制、再現性の強化、ポリシーによって裏打ちされた実践に関してのものです。真にクラウドのスケールでの運用を行うには、ポリシーベースの自動化は必須となるものです。運用管理者と開発者はアプリケーションごとのセキュリティポリシーの記述に多大な手間をかけており、また、この手間は企業内のアプリケーションそれぞれに繰り返し必要となるものです。こうしたアプリケーションスペシフィックなポリシーの管理とメンテナンスも、主要な課題のひとつとなっています。
既存のアクセスコントロールと認可ソリューションには以下の不十分な点がありました:
- ベーシックな認可能力しか提供していない。ポリシーの設定の際には常に人手による操作が必要とされ、ロールの仕組みに限定されており、いくつかの場合においては保守上の課題を発生させる。
- 異種混合環境のシナリオをうまく扱えない。
- トラディショナルな環境のために設計されており、クラウドネイティブな環境を効果的に扱えない。
Speedleの長所
Speedleが提供する、アプリケーションから独立したパワフルでダイナミックなアクセスコントロール能力により、これらの不十分だった点を解決することができます。Speedleはたとえば誰が何にどのような条件下でアクセスできるか、といったような複雑なポリシーを扱うためのいくつかの能力を提供します。こうした能力は、集中管理されドメインに依存しないやり方で提供され、複数のアプリケーションにまたがったポリシーを管理、メンテナンスします。これらのポリシーは必要に応じて生成、評価され、コストと手間を削減します。
アプリケーション開発者は、ひとつあるいは複数のクラウドネイティブアプリケーションごとに、アプリケーション内にポリシーをハードコードする必要がもはやなくなります。Speedleはポリシーを記述するハイレベルの宣言的な言語と、ポリシークエリに応答するシンプルなAPIを提供します。SpeedleはUniversal Permission License(UPL)バージョン1.0でライセンスされているため、あなたは自前のシステムにSpeedleをインテグレートすることができます。
Speedleを使うことで、開発者は以下のようなポリシー上の決定をコアサービスやアプリケーションからオフロードすることができます:
- APIコールを許可するべきか?
- 特定のアプリケーションリソースやオペレーションにアクセスを制限するべきか?
- サービスAにサービスBを起動、使用することを許可するか?
- 特定のユーザーにWebページのあるボタンを見せたり、クリックすることを許可するか?
- これらのコンテナはどのホストにデプロイすることができるか?
Speedle以前には、アプリケーションごとに以下を含む労力が必要でした
- ポリシーの文法
- ポリシーのコンパイラ
- セキュリティ
- インタラクティブクエリ
Speedleでは、アプリケーションごとのポリシーに係る労力は単にSpeedleとのインテグレーションだけで済みます:
Speedleのビフォア/アフター
Speedleは以下のコンポーネントを持っています:
- SPDLポリシー定義言語
- ポリシー管理サービス
- 認可判定サービス
- コマンドラインツール(spctl)
ユースケース:KubernetesでAdmission Controlポリシーを実装
KubernetesでのAdmission Controlポリシーの実装はSpeedleの主要なユースケースのひとつです。ひとつ例を挙げると「既知の脆弱性を持ったイメージがKubernetes上にデプロイされることの防止」といったものです。SpeedleはKubernetes APIサーバへのリクエストに関連するオブジェクトよりも前にインターセプトすることで望まれるクラスターステートを保持することができ、また、etcd Key/Valueオブジェクトストアに永続化することもできます。
その他のユースケース例:
- 様々なAPIサーバーイベントのJSONペイロードの評価。同一のAPIイベントを評価するために複数のポリシーを用いることができる。
- Kubernetesの設定をダイナミックに管理するアプローチである、ポリシーを用いたリソースのルールベース管理。
- APIサーバーイベントのペイロードの評価を行うことで、新規あるいは再設定されたオブジェクトが適切にラベリングされていることを確実にする。これにより、正しいラベリングスキームなしにワークロードがクラスターに導入されることを防ぐ(クラスター内でのガバナンスとコンプライアンス)。
- ドメインに依存しない性質を考慮すると、KubernetesクラスターにSpeedleをデプロイすることで、Kubernetesのリソースを検証するユースケースだけではなく、データバリデーションを必要とする他のワークロードについてもサービスを提供することができる。
やってみよう
ぜひみなさんにSpeedleを試していただきたいです。質問やコメントがあればわれわれにお知らせください。また、Speedleへのコントリビュートやエンハンスに参加することもできます。
Speedleプロジェクトの主要なリンクを以下に挙げます: