Compute Engine インスタンスが起動時に Cloud Storage バケットからデータを読み込む必要があります。インスタンスには適切なサービスアカウントが設定されています。このサービスアカウントに付与すべき最小限の権限はどれですか?
- A. プロジェクトレベルで roles/viewer を付与する
- B. 対象バケットに roles/storage.objectViewer を付与する
- C. 対象バケットに roles/storage.legacyBucketReader を付与する
- D. プロジェクトレベルで roles/storage.admin を付与する
解答と解説を見る
正解: B
最小権限の原則に従い、読み取りのみが必要な場合は対象バケットに roles/storage.objectViewer を付与します。このロールはオブジェクトの一覧表示(storage.objects.list)と読み取り(storage.objects.get)のみを許可します。プロジェクトレベルでの roles/storage.admin はプロジェクト内のすべてのバケットへの完全な管理権限で過剰です。プロジェクトレベルでの roles/viewer はプロジェクト内の多くのリソースへの読み取りアクセスを与えてしまいます。roles/storage.legacyBucketReader はバケットのメタデータ読み取りとオブジェクト一覧は含みますが、オブジェクトのデータ読み取り(storage.objects.get)には roles/storage.objectViewer が必要です。