「IAM(Identity & Access Management)」がゼロトラスト では主要な基盤となる。Amazonでは、以下の部分で言及されていたが、もう少し具体的に掘り下げる必要がある。
”さらに情報漏洩(information disclosure)や改ざん(tampering)への防御を確保し、否認(repudiation)への耐性を確保するためには、暗号化と最小権限を実装することです。”
AWS上でどのようにゼロトラストアーキテクチャを考えていくか
つまり、最小権限を実装については、ユーザーがどのアプリやリソースなどにアクセスできるか、ユーザーがそれぞれにどのレベルのアクセスができるか (管理者、編集者、閲覧者など) を指定するロールベースアクセス制御 (RBAC) に基づいて定義されたポリシーを介して適用する仕組みだ。
なお、今回用いられたRBACは比較的古いゼロトラスト の考え方で、近年はABAC(属性ベースのアクセス制御)を動的に適用する。
例えば、ユーザのアクセス元の情報やデバイスの状態、またユーザの過去の行動履歴からリスク算出しそれを属性として扱うことが可能なため、収集した属性情報を元に、アクセス権限を動的にかつ、リアルタイムに付与し、制御することで、ゼロトラストセキュリティの「常に確認」が実現できる。
このような、同じアクセス元、ユーザ、デバイスでもユーザの行動履歴からリスクを判断して、危険なアクセスを拒否するという仕組みによりリアルタイムかつ動的なアクセスコントロールが可能となる仕組みを、AWS上で実現すべきだと感じます。
AWS の ABAC とは
AWSによるとABAC には、従来の RBAC モデルと比べて以下の利点があります。
- ABAC のアクセス許可は、イノベーションに合わせてスケールされます。
管理者が新しいリソースへのアクセスを許可するために既存のポリシーを更新する必要がなくなり、新たにタグ付けすることでタグを指定してロールを割り当てる事が可能です。 - ABAC では必要なポリシーが少なくなります。
職務機能ごとに異なるポリシーを作成する必要がないため、作成するポリシーは少なくなります。これらのポリシーは管理しやすくなります。 - ABAC を使用することで、チームは迅速に変化し、成長することができます。
新しいリソースのアクセス許可が属性に基づいて自動的に付与されるためです。 ポリシーを作成するときは、 最小限のアクセス許可を付与することがベストプラクティスです。従来の RBAC では、特定のリソースへのアクセスのみを許可するポリシーを記述する必要があります。ただし、ABAC を使用する場合、リソースタグがプリンシパルのタグと一致する場合のみ、すべてのリソースでアクションを許可できます。 - ABAC を使用して、社内ディレクトリの従業員属性を使用します。
セッションタグを AWS に渡すよう SAML ベースまたはウェブ ID プロバイダーを設定できます。従業員が AWS にフェデレートすると、その属性が AWS で結果のプリンシパルに適用されます。その後、ABAC を使用して、これらの属性に基づいてアクセス許可を許可または拒否できます。
なおこれらの具体的な実装方法は「IAM チュートリアル: タグに基づいて AWS リソースにアクセスするためのアクセス許可を定義する」が参考になります。