目的
クラウド時代におけるIAMについて考える。
1章 クラウドコンピューティングの進化
産業時代、組織は電力を自給する必要があった。 電化によって、組織は電力を自給する必要がなくなり、 必要なエネルギーを必要なときに、必要な分だけ調達することが可能となった。 クラウドコンピューティングはまさしくこれと同じである。
2章 クラウドコンピュテーィングとは何か?
クラウドコンピューティングのためのSPIモデル
- Software as a Service
- Platform as a Service
- Infrastructure as a Service
Software as a Service
これまでは、あるサービスを利用したい場合、Softwareを購入して自身のアプリケーション上で実行して、その結果を得ていた。 SaaSを活用すると、アプリケーションの管理やホスティングを自身で管理しなくても、そのサービスの恩恵を受けることが可能となる。 SaaSベンダーは、ソフトウェアのコピーなどを防ぐことができるというメリットもある。
Platform as a Service
ベンダーが開発環境自体をアプリケーション開発者に提供し、プロバイダのプラットフォーム経由でサービスを提供するもの。 細かいこと設定できない代わりに、アプリケーションの開発に集中させてあげるよ!って環境。 Herokuなどのサービスがこれにあたる。
Infrastructure as a Service
クラウドの基本要素から成るもので、ネットワーキング機能、コンピュータ、データストレージ領域へのアクセスを提供する。 リソースは渡すから自分でサービスを組み立ててねって印象。Amazon EC2やGCEなどがこれにあたる。
5章 Identity Access Management (IAM)
クラウドサービスを使うと、アンコントローラブルな領域がどうしても生まれてしまう。 その場合、セキュリティの強度を上げようと思ったら、アプリケーションセキュリティやユーザーアクセスコントロールなどを強くしなければならない。 その結果、二要素認証、アイデンティティ連携、SSO、ユーザ行動の監視・監査が重要になってきた。
IAMで重要なのは、集中的で自動化されたアクセスコントロールできるようにすること。 それによって、安全で効率化されたシステムを実現する。
IAMの定義
IAMではAAA(Authentication, Authorization, Auditing)の3つの要素が重要になってくる。
- Authentication
- ユーザーのシステムのアイデンティティを検証するプロセス
- もっと簡単な言葉で言うと、通信の相手が誰か確認すること
- 指紋などその人固有の情報や、パスポートなどの所有物、パスワードなどの知識を使って行う
- Authorization
- アイデンティティが確立されたときに、ユーザやシステムに与えられている特権を決定するプロセスのこと
- とある条件に対して、リソースアクセスの権限を与えること
- 駅で切符を買ったから電車に乗れるとかそういうの
- 誰かに貰った切符で電車に乗るなど、移譲された権限を行使することもできる
- Auditing
- 認証のレビューおよび検査プロセス、認可記録、IAMシステムコントロールの妥当性を判断する
- セキュリティサービスへの侵害を検知して、その対策を勧告する
この資料がよりわかりやすかった
https://dev.classmethod.jp/security/authentication-and-authorization/
IAMアーキテクチャ
IAMでは下記の運用アクティビティが存在する
プロビジョニング
ユーザーをシステムやアプリケーションにオンボーディングするプロセス。 ここでユーザーのロールや、アクセス可能なリソースの設定などの権限管理を行う。 これに対して、ユーザーに割り当てられた権限を剥奪することをデプロビジョニングと呼ぶ。
クレデンシャルと属性の管理
クレデンシャルとは、リソースにアクセスするために必要なものを指す。 例えばパスワードや、APIキーなどがこれにあたる。 クレデンシャルは、特定のユーザーにのみ結び付けられている。 属性とは、氏名、メールアドレスなど、ユーザーを一意に定めるために必要な情報を指す。
この資料を読みながら補足した。
https://dev.classmethod.jp/cloud/aws/iam-bestpractice-1/#toc-aws
エンタイトルメント管理
エンタイトルメントとは認可ポリシーとも呼ばれるもの。 リソースにたいしてユーザーがアクセスするために必要な権限のプロビジョニングとデプロビジョニングを担うプロセス。
コンプライアンス管理
アクセス権や権限は企業のリソースのセキュリティを確保するために、監視、記録がされている必要がある。 これにより、監査人が適切なアクセスコントロールポリシーを遵守しているか検証することもできる。
アイデンティティ連携(Federation)管理
Federationとは、ネットワークドメインを超えて確立された信頼関係を管理するプロセスのこと。 SSOを実現する際に役に立つ。 この機能を使うと、ユーザー情報を共有することなく、アイデンティティを連携することが可能となる。
認可と認証の集中化
認証・認可のためのインフラストラクチャを用意することで、開発者がアプリケーションに認証・認可機能を構築しなくて良くなる。 認証と認可の外部化とも呼ばれる。
学びまとめ
クラウドを活用する時代になって、IAMも変わってきた。