このページでは、Identity and Access Management(IAM)権限を使用して、バケット、マネージド フォルダ、オブジェクトのアクセス制御を行う方法について説明します。IAM を使用すると、バケット、マネージド フォルダ、オブジェクトにアクセスできるユーザーを制御できます。
バケット、マネージド フォルダ、オブジェクトへのアクセスを制御するその他の方法については、アクセス制御の概要をご覧ください。バケット内のオブジェクトのアクセスを個別に制御する方法については、アクセス制御リストをご覧ください。
バケットで IAM を使用する
以下のセクションでは、バケットで基本的な IAM タスクを行う方法について説明します。
バケットレベルのポリシーにプリンシパルを追加する
Cloud Storage のロールの詳細については、IAM ロールをご覧ください。IAM ロールを付与するエンティティの詳細については、プリンシパル ID をご覧ください。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、プリンシパルにロールを付与するバケットの名前をクリックします。
ページ上部にある [権限] タブを選択します。
[add_box アクセス権を付与] ボタンをクリックします。
[プリンシパルの追加] ダイアログ ボックスが表示されます。
[新しいプリンシパル] フィールドに、バケットへのアクセスが必要な ID を 1 つ以上入力します。
[ロールを選択] プルダウン メニューからロールを選択します。選択したロールと付与する権限の簡単な説明がパネルに表示されます。
[保存] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
buckets add-iam-policy-binding
コマンドを実行します。
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
ここで
gsutil
gsutil iam ch
コマンドを使用します。
gsutil iam ch PRINCIPAL_IDENTIFIER:IAM_ROLE gs://BUCKET_NAME
ここで
PRINCIPAL_IDENTIFIER
には、バケットのアクセス権を付与するユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。IAM_ROLE
は、プリンシパルに付与する IAM ロールです。例:roles/storage.objectViewer
BUCKET_NAME
は、プリンシパルのアクセス権を付与するバケットの名前です。例:my-bucket
PRINCIPAL_IDENTIFIER:IAM_ROLE
のフォーマットに関するその他の例については、gsutil iam ch
リファレンス ページをご覧ください。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
次の情報が含まれる JSON ファイルを作成します。
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
ここで
cURL
を使用して、PUT setIamPolicy
リクエストで JSON API を呼び出します。curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルのパスです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、プリンシパルのアクセス権を付与するバケットの名前です。例:my-bucket
バケットの IAM ポリシーを表示する
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
ポリシーを表示するバケットに関連付けられた [バケット オーバーフロー] メニュー(
)をクリックします。
[アクセス権を編集] を選択します。
必要なロールを開いて、そのロールを持つプリンシパルを表示します。
(省略可)検索バーを使用して、ロールまたはプリンシパルで結果をフィルタリングします。
プリンシパルで検索すると、プリンシパルが付与されている各ロールが結果に表示されます。
コマンドライン
gcloud
buckets get-iam-policy
コマンドを実行します。
gcloud storage buckets get-iam-policy gs://BUCKET_NAME
ここで、BUCKET_NAME
は、IAM ポリシーを表示するバケットの名前です。例: my-bucket
gsutil
gsutil iam get
コマンドを実行します。
gsutil iam get gs://BUCKET_NAME
ここで、BUCKET_NAME
は、IAM ポリシーを表示するバケットの名前です。例: my-bucket
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、GET getIamPolicy
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、IAM ポリシーを表示するバケットの名前です。例:my-bucket
バケットレベル ポリシーからプリンシパルを削除する
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
プリンシパルのロールを削除するバケットと関連がある [バケット オーバーフロー] メニュー(
)をクリックします。
[アクセス権を編集] を選択します。
削除するプリンシパルが含まれているロールを開きます。
ゴミ箱アイコンをクリックします。
上に重なったウィンドウで [削除] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
buckets remove-iam-policy-binding
コマンドを実行します。
gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
ここで
gsutil
gsutil iam ch
コマンドを使用して、-d
フラグを指定します。
gsutil iam ch -d PRINCIPAL_IDENTIFIER gs://BUCKET_NAME
ここで
PRINCIPAL_IDENTIFIER
には、アクセス権を取り消すユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。BUCKET_NAME
は、アクセス権を削除するバケットの名前です。例:my-bucket
PRINCIPAL_IDENTIFIER
のフォーマットに関するその他の例については、gsutil iam ch
リファレンス ページをご覧ください。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
バケットに適用されている既存のポリシーを取得します。これを行うには、
cURL
を使用して、GET getIamPolicy
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、IAM ポリシーを表示するバケットの名前です。例:my-bucket
前の手順で取得したポリシーが含まれる JSON ファイルを作成します。
JSON ファイルを編集し、ポリシーからプリンシパルを削除します。
cURL
を使用して、PUT setIamPolicy
リクエストで JSON API を呼び出します。curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
ここで
JSON_FILE_NAME
は、手順 3 で作成したファイルのパスです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、アクセス権を削除するバケットの名前です。例:my-bucket
バケットで IAM Conditions を使用する
以降のセクションでは、バケットで IAM Conditions を追加、削除する方法を説明します。バケットの IAM Conditions を表示するには、バケットに適用される IAM ポリシーを表示するをご覧ください。Cloud Storage での IAM Conditions の使用について詳しくは、Conditions をご覧ください。
条件を追加する前に、バケットに対する均一なバケットレベルのアクセスを有効にする必要があります。
バケットに新しい条件を設定する
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットに関連付けられた行の右端にある [その他の操作] メニュー(
)をクリックします。
[アクセス権を編集] を選択します。
[プリンシパルを追加] をクリックします。
[新しいプリンシパル] に、バケットへのアクセス権を付与するプリンシパルを入力します。
条件を適用するロールごとに:
プリンシパルを付与するロールを選択します。
[条件を追加] をクリックして [条件を編集] フォームを開きます。
条件の [タイトル] を入力します。[説明] 欄の入力は任意です。
[条件ビルダー] を使用して条件を視覚的に構築するか、[条件エディタ] タブを使用して CEL 式を入力します。
[保存] をクリックして、[プリンシパルを追加] フォームに戻ります。複数のロールを追加するには、[別のロールを追加] をクリックします。
[保存] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
条件の
title
(条件の属性ベースのロジックexpression
や、必要に応じて条件のdescription
)を含む条件を定義する JSON または YAML ファイルを作成します。Cloud Storage がサポートするのは、
expression
内の日時、リソースタイプ、およびリソース名という属性のみであることに注意してください。buckets add-iam-policy-binding
コマンドを使用し、--condition-from-file
フラグを指定します。
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE
ここで
BUCKET_NAME
は、プリンシパルのアクセス権を付与するバケットの名前です。例:my-bucket
PRINCIPAL_IDENTIFIER
には、条件が適用されるユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。IAM_ROLE
は、プリンシパルに付与する IAM ロールです。例:roles/storage.objectViewer
CONDITION_FILE
は前の手順で作成したファイルです。
あるいは、--condition-from-file
フラグではなく、--condition
フラグを使用して条件をコマンドに直接追加することもできます。
gsutil
gsutil iam
コマンドを使用して、バケットの IAM ポリシーを一時 JSON ファイルに保存します。gsutil iam get gs://BUCKET_NAME > tmp-policy.json
ここで、
BUCKET_NAME
は、IAM ポリシーを取得するバケットの名前です。例:my-bucket
テキスト エディタで
tmp-policy.json
ファイルを編集して、IAM ポリシー内のバインディングに新しい条件を追加します。{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }
ここで
VERSION
は IAM ポリシー バージョンです。IAM Conditions を使用するバケットでは 3 にする必要があります。IAM ROLE
は、条件が適用されるロールです。例:roles/storage.objectViewer
PRINCIPAL_IDENTIFIER
には、条件が適用されるユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。TITLE
は、条件のタイトルです。例:expires in 2019
DESCRIPTION
は、条件の省略可能な説明です。例:Permission revoked on New Year's
EXPRESSION
は、属性ベースの論理式です。例:request.time < timestamp(\"2019-01-01T00:00:00Z\")
。他の式の例については、条件属性のリファレンスをご覧ください。Cloud Storage がサポートするのは、日時、リソースタイプ、およびリソース名という属性のみであるので注意してください。
ETAG
は変更しないでください。gsutil iam
を使用して、変更した IAM ポリシーをバケットに設定します。gsutil iam set tmp-policy.json gs://BUCKET_NAME
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
GET getIamPolicy
リクエストを使用して、バケットの IAM ポリシーを一時 JSON ファイルに保存します。curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam' \ --header 'Authorization: Bearer OAUTH2_TOKEN' > tmp-policy.json
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。
テキスト エディタで
tmp-policy.json
ファイルを編集して、IAM ポリシー内のバインディングに新しい条件を追加します。{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }
ここで
VERSION
は IAM ポリシー バージョンです。IAM Conditions を使用するバケットでは 3 にする必要があります。IAM_ROLE
は、条件が適用されるロールです。例:roles/storage.objectViewer
PRINCIPAL_IDENTIFIER
には、条件が適用されるユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。TITLE
は、条件のタイトルです。例:expires in 2019
。DESCRIPTION
は、条件の省略可能な説明です。例:Permission revoked on New Year's
EXPRESSION
は、属性ベースの論理式です。例:request.time < timestamp(\"2019-01-01T00:00:00Z\")
他の式の例については、条件属性のリファレンスをご覧ください。Cloud Storage がサポートするのは、日時、リソースタイプ、およびリソース名という属性のみであるので注意してください。
ETAG
は変更しないでください。PUT setIamPolicy
リクエストを使用して、変更した IAM ポリシーをバケットに設定します。curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。
バケットから条件を削除する
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットに関連付けられた行の右端にある [その他の操作] メニュー(
)をクリックします。
[アクセス権を編集] を選択します。
削除する条件を含むロールを開きます。
条件に関連付けられたプリンシパルの [編集] メニュー(
)をクリックします。
表示された [アクセス権を編集] オーバーレイで、削除する条件の名前をクリックします。
表示された [条件を編集] オーバーレイで、[削除] をクリックしてから、[確認] をクリックします。
[保存] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud
buckets get-iam-policy
コマンドを使用して、バケットの IAM ポリシーを一時 JSON ファイルに保存します。gcloud storage buckets get-iam-policy gs://BUCKET_NAME > tmp-policy.json
テキスト エディタで
tmp-policy.json
ファイルを編集し、IAM ポリシーから条件を削除します。buckets set-iam-policy
を使用して、変更した IAM ポリシーをバケットに設定します。gcloud storage buckets set-iam-policy gs://BUCKET_NAME tmp-policy.json
gsutil
gsutil iam
コマンドを使用して、バケットの IAM ポリシーを一時 JSON ファイルに保存します。gsutil iam get gs://BUCKET_NAME > tmp-policy.json
テキスト エディタで
tmp-policy.json
ファイルを編集し、IAM ポリシーから条件を削除します。gsutil iam
を使用して、変更した IAM ポリシーをバケットに設定します。gsutil iam set tmp-policy.json gs://BUCKET_NAME
コードサンプル
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
GET getIamPolicy
リクエストを使用して、バケットの IAM ポリシーを一時 JSON ファイルに保存します。curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam' \ --header 'Authorization: Bearer OAUTH2_TOKEN' > tmp-policy.json
ここで
BUCKET_NAME
は、アクセス権を付与するバケットの名前です。例:my-bucket
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。
テキスト エディタで
tmp-policy.json
ファイルを編集し、IAM ポリシーから条件を削除します。PUT setIamPolicy
リクエストを使用して、変更した IAM ポリシーをバケットに設定します。curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、IAM ポリシーを変更するバケットの名前です。例:my-bucket
マネージド フォルダで IAM を使用する
以下のセクションでは、マネージド フォルダに対する基本的な IAM タスクを行う方法について説明します。
必要なロール
マネージド フォルダの IAM ポリシーを設定および管理するために必要な権限を取得するには、マネージド フォルダを含むバケットのストレージのレガシー バケット オーナー(roles/storage.legacyBucketOwner
)IAM ロールの付与を管理者に依頼してください。
このロールには次の権限が含まれています。これらの権限は、マネージド フォルダの IAM ポリシーの設定と管理に必要です。
storage.managedfolders.getIamPolicy
storage.managedfolders.setIamPolicy
カスタムロールを使用してこれらの権限を取得することもできます。
バケットのロールの付与については、バケットで IAM を使用するをご覧ください。
マネージド フォルダに IAM ポリシーを設定する
コマンドライン
gcloud
次の情報が含まれる JSON ファイルを作成します。
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
ここで
gcloud alpha storage managed-folders set-iam-policy
コマンドを実行します。gcloud alpha storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE
ここで
BUCKET_NAME
は、IAM ポリシーを適用するマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、IAM ポリシーを適用するマネージド フォルダの名前です。例:my-managed-folder/
POLICY_FILE
は、手順 1 で作成した JSON ファイルへのパスです。
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
次の情報が含まれる JSON ファイルを作成します。
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
ここで
cURL
を使用して、PUT setIamPolicy
リクエストで JSON API を呼び出します。curl -X PUT --data-binary @POLICY_FILE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
ここで
POLICY_FILE
は、手順 2 で作成した JSON ポリシーファイルのパスです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、IAM ポリシーを適用するマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、プリンシパルのアクセス権を付与するマネージド フォルダの名前です。例:my-managed-folder/
マネージド フォルダの IAM ポリシーを表示する
コマンドライン
gcloud
gcloud alpha storage managed-folder get-iam-policy
コマンドを実行します。
gcloud alpha storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME
ここで
BUCKET_NAME
は、IAM ポリシーを表示するマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、IAM ポリシーを表示するマネージド フォルダの名前です。例:my-managed-folder/
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
cURL
を使用して、GET getIamPolicy
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、IAM ポリシーを表示するマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、IAM ポリシーを表示するマネージド フォルダの名前です。例:my-managed-folder/
マネージド フォルダ ポリシーからプリンシパルを削除する
コマンドライン
gcloud
gcloud alpha storage managed-folder remove-iam-policy-binding
コマンドを実行します。
gcloud alpha storage managed-folders remove-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
ここで
BUCKET_NAME
は、アクセス権を取り消すマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、IAM ポリシーを削除するマネージド フォルダの名前です。例:my-managed-folder/
PRINCIPAL_IDENTIFIER
には、アクセス権を取り消すユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。IAM_ROLE
は、取り消す IAM ロールです。例:roles/storage.objectViewer
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
マネージド フォルダに適用されている既存のポリシーを取得します。これを行うには、
cURL
を使用して、GET getIamPolicy
リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、アクセス権を取り消すマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、IAM ポリシーを削除するマネージド フォルダの名前です。例:my-managed-folder/
前の手順で取得したポリシーが含まれる JSON ファイルを作成します。
JSON ファイルを編集し、ポリシーからプリンシパルを削除します。
cURL
を使用して、PUT setIamPolicy
リクエストで JSON API を呼び出します。curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
ここで
JSON_FILE_NAME
は、手順 3 で作成したファイルのパスです。OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、アクセス権を取り消すマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、IAM ポリシーを削除するマネージド フォルダの名前です。例:my-managed-folder/
マネージド フォルダで IAM Conditions を使用する
以下のセクションでは、マネージド フォルダに IAM Conditions を追加、削除する方法を説明します。マネージド フォルダの IAM Conditions を表示するには、マネージド フォルダの IAM ポリシーの表示をご覧ください。Cloud Storage での IAM Conditions の使用について詳しくは、Conditions をご覧ください。
マネージド フォルダに条件を追加する前に、バケットに対して均一なバケットレベルのアクセスを有効にする必要があります。
マネージド フォルダに新しい条件を設定する
コマンドライン
gcloud
条件の
title
(条件の属性ベースのロジックexpression
や、必要に応じて条件のdescription
)を含む条件を定義する JSON または YAML ファイルを作成します。Cloud Storage がサポートするのは、
expression
内の日時、リソースタイプ、およびリソース名という属性のみであることに注意してください。gcloud alpha storage managed-folders add-iam-policy-binding
コマンド に--condition-from-file
フラグを指定します。
gcloud alpha storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE
ここで
BUCKET_NAME
は、プリンシパルのアクセス権を付与するマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、プリンシパルのアクセス権を付与するマネージド フォルダの名前です。例:my-managed-folder/
PRINCIPAL_IDENTIFIER
には、条件が適用されるユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。IAM_ROLE
は、プリンシパルに付与する IAM ロールです。例:roles/storage.objectViewer
CONDITION_FILE
は前の手順で作成したファイルです。
あるいは、--condition-from-file
フラグではなく、--condition
フラグを使用して条件をコマンドに直接追加することもできます。
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
GET getIamPolicy
リクエストを使用して、マネージド フォルダの IAM ポリシーを一時 JSON ファイルに保存します。curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer OAUTH2_TOKEN' > tmp-policy.json
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、IAM Conditions を設定するマネージド フォルダを含むバケットの名前です。MANAGED_FOLDER_NAME
は、IAM Conditions を設定するマネージド フォルダの名前です。
テキスト エディタで
tmp-policy.json
ファイルを編集して、IAM ポリシー内のバインディングに新しい条件を追加します。{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }
ここで
VERSION
は IAM ポリシー バージョンです。IAM Conditions を使用するマネージド フォルダでは 3 にする必要があります。IAM_ROLE
は、条件が適用されるロールです。例:roles/storage.objectViewer
PRINCIPAL_IDENTIFIER
には、条件が適用されるユーザーを指定します。たとえば、user:jane@gmail.com
のようにします。プリンシパル ID の形式の一覧については、プリンシパル ID をご覧ください。TITLE
は、条件のタイトルです。例:expires in 2019
。DESCRIPTION
は、条件の省略可能な説明です。例:Permission revoked on New Year's
EXPRESSION
は、属性ベースの論理式です。例:request.time < timestamp(\"2019-01-01T00:00:00Z\")
他の式の例については、条件属性のリファレンスをご覧ください。Cloud Storage がサポートするのは、日時、リソースタイプ、およびリソース名という属性のみであるので注意してください。
ETAG
は変更しないでください。PUT setIamPolicy
リクエストを使用して、変更した IAM ポリシーをバケットに設定します。curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、IAM Conditions を設定するマネージド フォルダを含むバケットの名前です。MANAGED_FOLDER_NAME
は、IAM Conditions を設定するマネージド フォルダの名前です。
マネージド フォルダから条件を削除する
コマンドライン
gcloud
gcloud alpha storage managed-folders get-iam-policy
コマンドを使用して、マネージド フォルダの IAM ポリシーを一時 JSON ファイルに保存します。gcloud alpha storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
テキスト エディタで
tmp-policy.json
ファイルを編集し、IAM ポリシーから条件を削除します。gcloud alpha storage managed-folders set-iam-policy
コマンドを使用して、変更した IAM ポリシーをマネージド フォルダに設定します。gcloud alpha storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json
REST API
JSON
- OAuth 2.0 Playground から認証アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。手順については、API 認証をご覧ください。
GET getIamPolicy
リクエストを使用して、マネージド フォルダの IAM ポリシーを一時 JSON ファイルに保存します。curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer OAUTH2_TOKEN' > tmp-policy.json
ここで
BUCKET_NAME
は、アクセス権を変更するマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、アクセス権を変更するマネージド フォルダの名前です。例:my-managed-folder/
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。
テキスト エディタで
tmp-policy.json
ファイルを編集し、IAM ポリシーから条件を削除します。PUT setIamPolicy
リクエストを使用して、変更した IAM ポリシーをマネージド フォルダに設定します。curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"
ここで
OAUTH2_TOKEN
は、手順 1 で生成したアクセス トークンです。BUCKET_NAME
は、アクセス権を変更するマネージド フォルダを含むバケットの名前です。例:my-bucket
MANAGED_FOLDER_NAME
は、アクセス権を変更するマネージド フォルダの名前です。例:my-managed-folder/
プロジェクトで IAM を使用する
プロジェクト レベル以上での IAM ロールの付与と取り消しに関するガイドについては、プロジェクト、マネージド フォルダ、組織へのアクセスの管理をご覧ください。
おすすめの方法
プリンシパルに必要なアクセス権を付与する、最小限の権限を設定する必要があります。たとえば、チームのメンバーがバケットに保存されているオブジェクトの読み取りだけを行う場合には、ストレージ オブジェクト閲覧者のロールを選択します。同様に、チームのメンバーがバケット内のオブジェクトにすべての操作を実行する必要がある場合(ただし、バケット自体の操作は行わない場合)には、ストレージ オブジェクト管理者を選択します。
次のステップ
- データを公開して共有する方法を学習する。
- 共有と共同作業の例を確認する。
- データへのアクセスを制御するオプションについて学習する。
- IAM 使用時のベスト プラクティスについて学習する。
- バケットにロールの推奨事項を使用する方法を学習する。