開発チームは Cloud Storage バケットに一時的なアクセスを外部パートナーに提供したいと考えています。パートナーは Google アカウントを持っていません。24 時間だけオブジェクトをダウンロードできるようにしたい場合、最も適切な方法はどれですか?
- A. バケットを一時的に公開(allUsers に読み取り権限)して 24 時間後に非公開に戻す
- B. 署名付き URL(Signed URL)を作成して 24 時間の有効期限を設定する
- C. パートナーのために一時的な Google アカウントを作成して IAM 権限を付与する
- D. Cloud Run エンドポイントを作成してパートナーにダウンロード API を提供する
解答と解説を見る
正解: B
署名付き URL(Signed URL)はサービスアカウントの秘密鍵または IAM で署名された、時間制限付きのアクセス URL です。Google アカウントを持たないユーザーにも特定オブジェクトへの一時的なアクセスを提供できます。有効期限(最大 7 日間)を設定でき、期限後は自動的に無効になります。バケットを公開にすると 24 時間の間、すべてのユーザーがアクセスできてしまいます。一時的な Google アカウント作成は管理が煩雑で、IAM権限の削除忘れのリスクがあります。Cloud Run エンドポイントの作成は必要以上に複雑で、署名付き URL で十分です。