-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
クラウドサービス部の石井です。
ラックでは、Prisma® Cloud(プリズマクラウド)を用いたクラウドセキュリティ統制支援サービスを提供しています。Prisma® Cloudは、パロアルトネットワークス社が展開する、マルチクラウドやハイブリッドクラウド環境におけるクラウドリソースの設定上の脆弱性や不審な挙動を、業界標準の各種コンプライアンス基準や独自の基準に従い、継続的に監視・可視化するSaaS型のサービスです。
機能の1つとして、Prisma® Cloud側で事前定義されたアラートポリシーに基づいて、不適切な設定や不審な挙動を検知・アラートします。非常に多くのアラートポリシーが定義されているので、そのなかでも特に注意したいものを連載でお届けしていきます。
連載4回目となる本記事では、「GCP BigQuery dataset is publicly accessible」というアラートポリシーを題材に、Google CloudのBigQueryへのアクセス制御について紹介します。
アラートの内容
このアラートは、パブリックにアクセス可能な状態にあるBigQueryデータセットを検知します。これは、データセット名とテーブル名を知るあらゆるユーザーから、BigQueryに保管されたデータにアクセスされ、情報が流出・改ざんされるリスクがあることを意味します。詳細なアラートの条件は、以下のいずれかを満たしたBigQueryデータセットを検知します。
個々のBigQueryデータセットに対するアクセス許可に「allAuthenticatedUsers」が使用されている
BigQueryデータセットは、テーブルを整理し、管理するためのコンテナのようなものです。データの実体となるテーブルやビューは、このデータセット配下に作成します。
BigQueryではデータセットやテーブルといったリソースごとにアクセス許可を設定できます。IAMではBigQueryのリソース全体に対してのアクセス許可しか定義できず、個々のリソース単位でのアクセス許可は設定できません。そのため、個別のデータセットやテーブルごとにアクセスできるユーザーを設定したい場合は、リソースごとのアクセス許可を利用することになります。


リソースごとのアクセス許可においては、「allAuthenticatedUsers」を指定できます。「allAuthenticatedUsers」を指定した場合、Googleを経由して作成されたプリンシパル(Googleアカウントやサービスアカウントなど)の全てを対象としたアクセス許可を設定できます。Googleを経由して作成されたプリンシパルであれば、第三者が作成したものでもアクセスが許可されるので、「allAuthenticatedUsers」の利用には注意が必要です。
個々のBigQueryデータセットに対するアクセス許可に「allUsers」が使用されている
リソースごとのアクセス許可においては、「allUsers」も指定できます。「allUsers」を指定した場合、全てのユーザーにアクセス許可を設定することになります。前述したallAuthenticatedUsersよりも、さらに広くアクセスが許可されるため、「allUsers」についても注意して使用する必要があります。

対処方法
ここからは、データセットに対してallAuthenticatedUsersやallUsersへのアクセス許可が設定されているケースを想定し、修正方法を紹介します。
アクセス許可の状況確認
①Google CloudコンソールからBigQueryを開き、対象のデータセットの「権限の管理」を開きます。

②「継承されたロールをテーブルに表示」のチェックをOFFにして、リソースに対して個別で設定されたアクセス許可のみを表示します。
※ チェックをONにすると、IAMにて定義したアクセス許可を含む、そのリソースにアクセスできる全てのプリンシパルが表示されます。

アクセス許可の削除
前述したアクセス許可の状況確認>②の画面から、削除したいプリンシパルのゴミ箱アイコンをクリックします。

表示されたダイアログの「削除」をクリックします。

対象のアクセス許可が削除されたことを確認します。

上記手順を実施し、allAuthenticatedUsersやallUsersを削除することで、それ以外のアクセス許可されたユーザー・グループのみが、データセットにアクセスできるようになります。

BigQueryアクセス制御の具体例
BigQueryのアクセス制御は、以下2つから設定できます。
- IAMによる、プロジェクト内のBigQuery全体へのアクセス制御
- リソース(テーブルやデータセット)単位のアクセス制御
上記のいずれかでアクセスが許可されていれば、許可されたユーザーは定義された権限の範囲内で、対象のBigQueryに対する操作を行えるようになります。許可のみであればシンプルな設定ですが、一部の操作や一部のリソースへの操作を制限したい場合は工夫が必要になるため、いくつかのケースにおいての対応案の一例を紹介します。
プロジェクト全体でテーブル削除を禁止したいケース
2023年のリリースにて、IAM側では一部の操作に対して拒否ポリシーを定義できるようになりました。これを利用することで、特定のユーザーやグループなどに対する、特定操作の拒否が設定できます。
例えば、public:allに対して、bigquery.googleapis.com/tables.deleteを拒否するポリシーを設定すれば、IAMやリソース単位のアクセス制御でテーブル削除を許可する設定が存在しても、全てのユーザーがプロジェクト上に存在するBigQueryテーブルの削除が行えなくなります。削除を含むBigQueryテーブルの操作が許可された状態から、プロジェクト上のテーブル削除を設定するためには、以下の手順を実施します。
①拒否ポリシーを設定したいプロジェクトのIAM>許可しないを開き、「拒否ポリシーの作成」をクリックします。

②対象のプリンシパルと、拒否する権限(操作内容)を設定し、作成をクリックします。
※ 画像では全ユーザーのBigQueryテーブル削除を禁止するよう、パラメータを指定しています。
※ 「例外のプリンシパル」を使用すれば、管理者は削除可能にすることもできます。

③全ユーザーがBigQueryテーブルを削除できない拒否ポリシーが適用され、テーブルの削除ボタンがクリックできない状態になります。

特定テーブルを参照できるユーザーを制限したいケース
IAM側でBigQueryテーブルへの参照権限を付与すると、プロジェクト上の全BigQueryテーブルに対してアクセス許可が付与されます。特定テーブルについて参照できるユーザーを制限したい場合、テーブル個別のアクセス制御では拒否ルールを設定する機能は実装されていません。
手段の1つとして、IAM側ではBigQueryの参照許可を設定せず、テーブル個別のアクセス制御にて特定ユーザーの閲覧権限を付与することで、ケースに対応できます。IAM側で全てのBigQueryテーブルの閲覧が許可された状態から、テーブルごとに閲覧許可を付与するためには、以下の手順を実施します。
①IAMから、BigQueryテーブルの閲覧許可を含むロールを持つプリンシパルの編集ボタンをクリックします。

②権限の編集画面にて、対象のロールを削除し、変更内容を保存します。

③BigQuery>共有を開き、「プリンシパルの追加」をクリックします。

④プリンシパルとロールを指定し、保存します。

おわりに
今回紹介したアラート以外にも、Prisma® Cloudは多様なセキュリティリスクを検知します。そして、ラックの豊富なシステム開発とセキュリティのノウハウを結集した「クラウドセキュリティ統制支援サービス」では、検知したアラートへの対応サポートを提供しています。
ラックならではの知見を活かし、セキュリティトレンドやメーカーの対応状況を踏まえたラック独自のポリシーを提供することで、継続的に最新のセキュリティ対策を行えます。Google Cloud含め、パブリッククラウドのセキュリティに不安がありましたら、ぜひラックにご相談ください。
プロフィール

石井 友也
Google Cloudを中心としたクラウド基盤の保守・運用・改善に従事しています。AWSやAzureなどを含めたクラウドサービス全般に興味があり、資格試験を通して学習しています。これまでに20以上の資格試験に合格しています。クラウドサービスや資格取得をテーマとした情報発信を行っていきます。
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR