セキュリティ体制を大規模に強化するシンプルな方法である IAM 拒否ポリシーのご紹介
Google Cloud Japan Team
※この投稿は米国時間 2022 年 11 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Cloud は、ソリューションを迅速かつ安全に構築できる簡単な手段を提供することに重点を置いています。Identity and Access Management(IAM)は、誰がどのクラウド リソースにアクセスできるかを確立し、アクセス許可が会社のビジネス ポリシーとセキュリティ ポリシーに則っていることを確認するコア セキュリティ制御です。
このたび、IAM 拒否ポリシーの一般提供を開始することになりましたので、お知らせします。この新しい機能により、Google Cloud リソースのアクセス ガードレールを簡単に作成できるようになります。IAM 拒否ポリシーでは、リソースに対するアクセスを広範に制限するルールを作成できます。セキュリティ ポリシーを大規模に実装する際に役立つ、強力で大まかなアクセス制御を提供します。
IAM ポリシーによる制御 - 許可と拒否
IAM 拒否ポリシーは、リソースに対するアクセスを定義する際に IAM 許可ポリシーを補完するものです。Google Cloud の IAM 許可ポリシーを使用すると、Google Cloud リソースに対するアクセス権をきめ細かく設定できます。より大まかな拒否ポリシーを使用すると、既存の許可ルールに関係なく、特定のリソースに対するアクセスを明示的に禁止できます。IAM 拒否ポリシーは常に IAM 許可ポリシーに優先し、競合する IAM 許可ルールをオーバーライドします。
IAM 拒否ポリシーは、Compute Engine、Cloud Storage、Google Cloud Kubernetes Engine など、多くの Google Cloud リソースに適用できます。これらのポリシーは、既存のアクセスルールのレビューや変更を必要とせずに大規模に適用される拒否ルールを設定できるため、管理者のトイルを軽減できます。それにより、リソース ガバナンスが簡素化されます。
IAM 拒否ポリシーでセキュリティ体制を強化する方法
IAM 拒否ポリシーを使用して体制を強化できるユースケースは複数あります。具体例を次に挙げます。
デフォルトのセキュリティ ベースラインの確立: IAM 拒否ポリシーを使用して、組織レベル、フォルダレベル、プロジェクト レベルで基本ポリシーを設定し、リソースに対するアクセスを拒否できます。たとえば、組織レベルで拒否ポリシーを適用し、機密データのストレージ バケットに対するすべてのユーザー アクセスを拒否したうえで、特定のユーザー グループに例外を設定できます。
バックドアの防止: IAM 拒否ルールは、IAM 許可ルールをすべてオーバーライドします。これにより、「バックドア」アクセスが許可されないようにすることができます。たとえば、central-admin のみがフォルダにプロジェクトを作成できるようにしたい組織は、IAM 拒否ポリシーを追加して central-admin を除くすべてのユーザーによるプロジェクトの作成を制限できます。これにより、許可ポリシールールを使用したバックドア ユーザーの追加を回避できます。
データの引き出しを防ぐ: データに対するアクセスを制御することは、引き出しを防止するための重要な手段です。たとえば、個人を特定できる情報(PII)に対するアクセスを制限したい組織は、PII を含むリソースに IAM 拒否ポリシーを設定して、PII-admin というグループのユーザーを除くすべてのユーザーのアクセスを拒否できます。
コンプライアンスの実証: 多くの業界の規制およびコンプライアンス フレームワークでは、機密性の高いリソースに対する最小権限アクセスを実証することを組織に求めています。IAM 拒否ポリシーは、リソースの適用時に常に優先されるベースライン アクセス制限を作成できます。
IAM の管理を簡素化
IAM 拒否ポリシーにより、一般的な管理タスクを簡素化することもできます。拒否ポリシーで簡単に使用できる Google Cloud サービスの権限のリストが提供されます。IAM 拒否ポリシーを使用してアクセス管理を合理化できる一般的な状況をいくつかご紹介します。
管理者権限を一元化する: 拒否ポリシーを使用すると、特定の管理アクティビティを特定のユーザーや特定のユーザー グループに制限できます。たとえば、カスタムロールの管理を単一の中央のチームに限定する場合は、central-admin グループのユーザーを除くすべてのユーザーに対し、カスタムロールの管理に必要な権限を拒否する拒否ルールを作成できます。これにより、他のユーザーが必要な権限を持っている場合でも、central-admin グループのメンバー以外はカスタムロールを管理できなくなります。
アクセス許可の例外を作成する: 拒否ポリシーを使用して、継承された権限を拒否できます。たとえば、リソース階層の上位レベルでロールを付与し、下位レベルの個々のリソースで必要に応じてロールの権限を拒否できます。
タグに基づいてアクセスをブロックする: Google Cloud は Key-Value ベースのタグをサポートしており、拒否ポリシーを使用すればタグに基づいて権限を拒否できます。すべてのロール付与に IAM の条件を追加する必要はありません。たとえば、「production」とタグ付けされたリソースの削除権限を、project-admins を除くすべてのユーザーに対し拒否するルールを作成できます。
IAM 拒否ポリシーの実践
次の例は、拒否ポリシーを使用して、ユーザーが project-admins グループのメンバーであるか、削除対象のプロジェクトが「test」プロジェクトとしてタグ付けされていない限り、すべてのユーザーをブロックし、プロジェクトを削除できないようにする方法を示しています。拒否ポリシーがなければ、プロジェクトを削除する権限を持つすべてのメンバーを手動で追跡し、望ましくないユーザーがこの権限にアクセスできないようにする必要があります。拒否ポリシーにより、管理者はこのガードレールを簡単に構築できます。
以下の拒否ルールは、test とタグ付けされていないプロジェクトについて、project-admins@example.com を除くすべてのユーザーの権限を拒否するものです。この拒否ルールを拒否ポリシーに追加して、ポリシーを組織レベルで適用します。以上で完了です。
(なお、project-admins@example.com はセキュリティ グループであることにご注意ください。セキュリティ グループの使用は、リソースを安全に保つうえで従うべきベスト プラクティスです。)
例: IAM 拒否ルール
IAM 拒否ポリシーの利用を開始する
セキュリティ ガードレールを構築し、Google Cloud リソースに対するアクセスをより効果的に制御する強力な新機能、IAM 拒否ポリシーが利用できるようになりました。IAM 拒否ポリシーは、gCloud と API を通じてすべてのお客様に一般提供されます。Google Cloud のお客様は、IAM 拒否ポリシーを追加料金なしでご利用いただけます。IAM 拒否ポリシーの詳細については、ドキュメント ページをご覧ください。
- Google Cloud グループ プロダクト マネージャー Ravi Shah