Google Cloudを利用していく上で、必ずセキュリティは意識する必要があります。
Google Cloudはセキュリティ向上のため、組織のポリシーやIAM、VPC Service Controls等様々なサービスを提供しています。
今回はIAMサービスに含まれる、IAMの拒否ポリシーに注目し、ユースケースや実際の利用方法を踏まえて紹介していきます。
拒否ポリシーは弊社の別ブログでも紹介しておりますので、ぜひご確認ください!
また組織のポリシーはこちらのブログで紹介しております。こちらも一緒にご覧いただければと思います。
拒否ポリシーの概要は公式ドキュメントでも記載されています。
拒否ポリシーは以下の通りとなります。
拒否ポリシーは 特定のIAMポリシーまたはロールに含まれる権限を除外するセキュリティ設定 となります。
組織、フォルダ、プロジェクトに反映可能となります。
では拒否ポリシーのメリット・デメリットを考えてみましょう。
拒否ポリシーを設定するユースケース例は下記の通りとなります。
こちらはあくまでも一例のため、他にも拒否ポリシー設定のユースケースはございます。
拒否ポリシーはコマンドベースでの設定となります。
また設定は定義ファイルを作成し設定する必要があります。
今回は例として、VPCネットワークを作成するための権限「compute.networks.create」を制限する拒否ポリシーを作成します。
また作成時の権限として、「拒否管理者」が必要となりますので、IAM権限の付与をお願いします。
定義ファイルはjson形式で記載します。
サンプルの定義ファイルは下記のとおりとなります。
{
"displayName": "Deny Policy for Create VPC Network",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"compute.googleapis.com/networks.create"
]
}
}
]
}
定義ファイル内には大きく3つの設定を実施します。詳細は公式ドキュメントをご確認ください。
上記サンプル定義ファイルは、ユーザ全体に対して、VPC作成作業を否定する拒否ポリシーを定義します。
作成した定義ファイルを元に、拒否ポリシーを作成します。
作成時のテンプレートコマンドは下記のとおりです。
今回はプロジェクトに対して設定するコマンドとします。
gcloud iam policies create [拒否ポリシー名] \
--attachment-point=cloudresourcemanager.googleapis.com/projects/[プロジェクトID] \
--kind=denypolicies \
--policy-file=[作成した定義ファイル]
フォルダ及び組織に設定したい場合は、「projects/[プロジェクトID]」の部分を「folders/[フォルダID]」及び「organizations/[組織ID]」で対応可能となります。
上記コマンドを実行すると、「Create in progress for denyPolicy [拒否ポリシーID].」といった表記が実施されます。
# 定義ファイルを確認する
$ ls policy.json
policy.json
# 定義ファイルを作成する(一部情報はxxxxと表記しています)
$ gcloud iam policies create test-policy --attachment-point=cloudresourcemanager.googleapis.com/projects/[プロジェクトID] --kind=denypolicies --policy-file=policy.json
Create in progress for denyPolicy [policies/cloudresourcemanager.googleapis.com%2Fprojects%2xxxxx/denypolicies/test-policy/operations/xxxxxxx]
定義ファイル作成後、数分で拒否ポリシーの反映が可能となります。
削除する際は、下記コマンドを参考に実施してください。
gcloud iam policies delete [ポリシー名] \
--attachment-point=cloudresourcemanager.googleapis.com/projects/[プロジェクトID] \
--kind=denypolicies
では実際にGUI画面を確認してみましょう。
Compute ネットワーク管理者権限を付与したアカウントでVPCの画面へ移動すると、下記のような表記が出力されNGとなります。
注意が必要なのは、 拒否ポリシーによるNG といった警告メッセージがでない点です。
そのため、「権限を付与しているのにおかしい!」となる可能性がありますので、拒否ポリシーをどのプロジェクトに設定したか、どのフォルダに設定したかを管理しておく必要がありますのでご注意ください。
拒否ポリシーは使いどころが難しいかもしれませんが、セキュリティを向上させるルールの一つでもあります。
ユースケースや使い道を検討し、適切に使うことでよりセキュアな環境で利用可能となります。
本ブログを参考に、ぜひ拒否ポリシーの導入及び利用を検討してみてください。
Google Cloud、Google Workspaceに関する お問い合わせはこちら
XIMIX(サイミクス)は商標登録出願中です