このページでは、シークレット マテリアルを含むリージョン シークレットへのアクセスを管理する方法について説明します。アクセス制御と権限の詳細については、IAM を使用したアクセス制御をご覧ください。
必要なロール
シークレットへのアクセスを管理するために必要な権限を取得するには、シークレット、プロジェクト、フォルダ、または組織に対する Secret Manager 管理者 (roles/secretmanager.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
アクセスを許可
シークレットへのアクセス権を付与するには、次のいずれかの方法を使用します。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[リージョン シークレット] タブに移動します。シークレットを選択するには、シークレットの名前の横にあるチェックボックスをオンにします。
-
まだ開いていない場合は、[情報パネルを表示] をクリックしてパネルを開きます。
-
情報パネルで [プリンシパルを追加] をクリックします。
-
[新しいプリンシパル] フィールドに、追加するメンバーのメールアドレスを入力します。
-
[ロールを選択] リストで [Secret Manager] を選び、[Secret Manager のシークレット アクセサー] を選択します。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
- LOCATION: シークレットの Google Cloud ロケーション
- MEMBER: ユーザー、グループ、サービス アカウントなどの IAM メンバー
次のコマンドを実行します。
Linux、macOS、Cloud Shell
ggcloud secrets add-iam-policy-binding SECRET_ID --location=LOCATION \ --member="MEMBER" \ --role="roles/secretmanager.secretAccessor"
Windows(PowerShell)
ggcloud secrets add-iam-policy-binding SECRET_ID --location=LOCATION ` --member="MEMBER" ` --role="roles/secretmanager.secretAccessor"
Windows(cmd.exe)
ggcloud secrets add-iam-policy-binding SECRET_ID --location=LOCATION ^ --member="MEMBER" ^ --role="roles/secretmanager.secretAccessor"
REST
注: 他の例と異なり、IAM ポリシー全体が置き換えられます。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: シークレットの Google Cloud ロケーション
- PROJECT_ID: シークレットを含む Google Cloud プロジェクト
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
- MEMBER: ユーザー、グループ、サービス アカウントなどの IAM メンバー
HTTP メソッドと URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:setIamPolicy
リクエストの本文(JSON):
{"policy": {"bindings": [{"members": ["MEMBER"], "role": "roles/secretmanager.secretAccessor"}]}}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:setIamPolicy"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:setIamPolicy" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "version": 1, "etag": "BwYhOrAmWFQ=", "bindings": [ { "role": "roles/secretmanager.secretAccessor", "members": [ "user:username@google.com" ] } ] }
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
アクセス権を取り消す
シークレットからのアクセス権を取り消すには、次のいずれかの方法を使用します。
Console
-
Google Cloud コンソールの [Secret Manager] ページに移動します。
-
[リージョン シークレット] タブに移動します。シークレットを選択するには、シークレットの名前の横にあるチェックボックスをオンにします。
-
まだ開いていない場合は、[情報パネルを表示] をクリックしてパネルを開きます。
-
情報パネルで、ユーザーロールの横にある展開矢印をクリックすると、そのロールにアクセスできるユーザーまたはサービス アカウントのリストが表示されます。
-
ユーザーまたはサービス アカウントを削除するには、サービス アカウントまたはユーザー ID の横にある [
削除] をクリックします。 -
表示される確認ダイアログで、[削除] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
- LOCATION: シークレットの Google Cloud ロケーション
- MEMBER: ユーザー、グループ、サービス アカウントなどの IAM メンバー
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud secrets remove-iam-policy-binding SECRET_ID --location=LOCATION \ --member="MEMBER" \ --role="roles/secretmanager.secretAccessor"
Windows(PowerShell)
gcloud secrets remove-iam-policy-binding SECRET_ID --location=LOCATION ` --member="MEMBER" ` --role="roles/secretmanager.secretAccessor"
Windows(cmd.exe)
gcloud secrets remove-iam-policy-binding SECRET_ID --location=LOCATION ^ --member="MEMBER" ^ --role="roles/secretmanager.secretAccessor"
REST
注: 他の例と異なり、IAM ポリシー全体が置き換えられます。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: シークレットの Google Cloud ロケーション
- PROJECT_ID: Google Cloud プロジェクト ID
- SECRET_ID: シークレットの ID またはシークレットの完全修飾識別子
HTTP メソッドと URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:setIamPolicy
リクエストの本文(JSON):
{"policy": {"bindings": []}}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:setIamPolicy"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:setIamPolicy" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "version": 1, "etag": "BwYhOtzsOBk=" }
Go
このコードを実行するには、まず Go 開発環境を設定し、Secret Manager Go SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Java
このコードを実行するには、まず Java 開発環境を設定し、Secret Manager Java SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Secret Manager Node.js SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。
Python
このコードを実行するには、まず Python 開発環境を設定し、Secret Manager Python SDK をインストールします。Compute Engine または GKE では、cloud-platform スコープを使用して認証する必要があります。