Workforce Identity 連携の詳細については、 Workforce Identity 連携をご覧ください。
Secure Source Manager での Workforce Identity 連携の制限については、 ID 連携: プロダクトと制限事項をご覧ください。
Secure Source Manager は単一テナント サービスです。契約関係にある複数の企業がコラボレーションのために単一のインスタンスを使用する必要がある場合を除き、1 つの Secure Source Manager インスタンスには 1 つの Google Cloud 顧客のユーザーのみを含める必要があります。
複数の企業と連携してソースコードを操作する場合は、企業ごとに個別のインスタンスを作成することをおすすめします。
始める前に
-
ログイン Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、 新しいアカウントを登録します。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init
データ暗号化
デフォルトでは、 Google Cloud は、 を使用して保存データを自動的に暗号化します Google-owned and Google-managed encryption keys。データを保護する鍵に関連する具体的なコンプライアンス要件や規制要件がある場合は、顧客管理の暗号鍵(CMEK)で暗号化された Secure Source Manager インスタンスを作成できます。
インスタンス ID またはラベルの Key-Value ペアは CMEK で暗号化されないため、機密データを保存しないでください。
プロジェクトで最初の Secure Source Manager インスタンスを作成する場合は、次のコマンドを実行して Secure Source Manager サービス エージェントを手動で作成する必要があります。
gcloud beta services identity create \
--service=securesourcemanager.googleapis.com \
--project=PROJECT_ID
ここで、PROJECT_ID は、Secure Source Manager インスタンスを作成するプロジェクトのプロジェクト ID です。
Secure Source Manager サービス エージェントを作成したら、プリンシパル service-PROJECT-NUMBER@gcp-sa-sourcemanager. に Secure Source Manager サービス エージェント ロール(roles/securesourcemanager.serviceAgent)を付与する必要があります。そうしないと、インスタンスの作成に失敗します。iam.gserviceaccount.com
Workforce Identity 連携を設定する
インスタンスを作成する前に、Workforce Identity 連携プールとプロバイダを設定する必要があります。
インスタンスの作成
gcloud
後述のコマンドデータを使用する前に、 次のように置き換えます。
- INSTANCE_ID: 作成するインスタンスの名前。
- LOCATION: インスタンスを作成するリージョン。サポートされているロケーションについては、ロケーションをご覧ください。
- PROJECT_ID: インスタンスを作成するプロジェクトのプロジェクト ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
Windows(PowerShell)
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
Windows(cmd.exe)
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
長時間実行のインスタンス作成オペレーションが開始されます。出力は次のようになります。
Create request issued for [my-instance].
done: false
metadata:
'@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata
apiVersion: v1
createTime: '2023-02-27T20:57:52.315609549Z'
requestedCancellation: false
target: projects/my-project/locations/us-central1/instances/my-instance
verb: create
name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
ここで、projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e は OPERATION_NAME です。
OPERATION_NAME を記録します。これは、オペレーションのステータスを確認するために使用します。
インスタンスの作成には最大 60 分かかります。
API
このコマンドを実行する前に、次の値を置き換えます。
- INSTANCE_ID: 作成する インスタンスの名前。
- LOCATION:インスタンスを作成するリージョン。サポートされているロケーションについては、 ロケーションをご覧ください。
- PROJECT_ID: インスタンスを作成するプロジェクトのプロジェクト ID。
次のコマンドを実行します。
curl \
-X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \
-H "Content-Type: application/json" \
-d "{workforce_identity_federation_config: {enabled: true}}"
長時間実行のインスタンス作成オペレーションが開始されます。出力は次のようになります。
{
"name": "OPERATION_NAME",
"metadata": {
"@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
"createTime": "2022-11-01T14:31:32.420469714Z",
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
この出力例には、次の値が含まれています。
OPERATION_NAME: オペレーション名(例:projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e)。PROJECT_ID: プロジェクト。 Google CloudLOCATION: インスタンスが配置されているリージョン。
OPERATION_NAME を記録します。これは、オペレーションのステータスを確認するために使用します。
インスタンスの作成には最大 60 分かかります。
Terraform
次の例では、Workforce Identity 連携が有効になっている Secure Source Manager インスタンスを作成します。
resource "google_secure_source_manager_instance" "instance" {
instance_id = "INSTANCE_ID"
location = "LOCATION"
project = "PROJECT_ID"
workforce_identity_federation_config {
enabled = true
}
}
オペレーションのステータスを確認する
gcloud
後述のコマンドデータを使用する前に、 次のように置き換えます。
- OPERATION_NAME: 作成 コマンドのレスポンスのオペレーション名。
- LOCATION: インスタンス リージョン。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
Windows(PowerShell)
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
Windows(cmd.exe)
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
インスタンスの準備が完了すると、レスポンスは次のようになります。
"name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
"metadata": {
"@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
"createTime": "2022-11-01T14:31:32.420469714Z",
"endTime": "2022-11-01T14:48:34.140378114Z",
"target": "projects/my-project/locations/us-central1/instances/my-instance",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
"name": "projects/my-project/locations/us-central1/instances/my-instance",
"createTime": "2022-11-01T14:31:32.416413630Z",
"updateTime": "2022-11-01T14:31:32.416413630Z",
"labels": {
"ldap": "user",
"source": "manual"
},
"state": "ACTIVE",
"hostConfig": {
"html": "my-instance-098765432109.us-central1.sourcemanager.dev",
"api": "my-instance-098765432109-api.us-central1.sourcemanager.dev",
"gitHttp": "my-instance-098765432109-git.us-central1.sourcemanager.dev"
}
}
ここで、my-instance-098765432109.us-central1.sourcemanager.dev はインスタンスの HTML URL です。
API
リクエスト データを使用する前に、 次のように置き換えます:
- OPERATION_NAME: 作成 コマンドのレスポンスのオペレーション名。
HTTP メソッドと URL:
GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
インスタンスの準備が完了すると、レスポンスは次のようになります。
"name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
"metadata": {
"@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
"createTime": "2024-10-28T15:37:39.009812863Z",
"endTime": "2024-10-28T16:10:58.416640259Z",
"target": "projects/my-project/locations/us-central1/instances/my-instance",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
"name": "projects/my-project/locations/us-central1/instances/my-instance",
"createTime": "2024-10-28T15:37:39.004550840Z",
"updateTime": "2024-10-28T15:37:39.867857246Z",
"state": "ACTIVE",
"hostConfig": {
"html": "my-instance-326202322590.us-central1.sourcemanager.dev",
"api": "my-instance-326202322590-api.us-central1.sourcemanager.dev",
"gitHttp": "my-instance-326202322590-git.us-central1.sourcemanager.dev",
"gitSsh": "my-instance-326202322590-ssh.us-central1.sourcemanager.dev"
},
"workforceIdentityFederationConfig": {
"enabled": true
}
}
ここで、my-instance-098765432109.us-central1.sourcemanager.dev はインスタンスの HTML URL です。
ステータス チェックのレスポンスから HTML URL をコピーします。この URL は、ウェブ インターフェースからインスタンスにアクセスするために必要です。
インスタンスにアクセスする
インスタンスが作成されたら、ブラウザを使用してウェブ インターフェースからアクセスできます。
-
ウェブ インターフェースから Secure Source Manager インスタンスにアクセスするには、次の URL をブラウザのアドレスバーにコピーします。
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev次のように置き換えます。
- INSTANCE_ID をインスタンス名に置き換えます。
- PROJECT_NUMBER をインスタンスの Google Cloud プロジェクト番号に置き換えます。プロジェクトの識別については、 プロジェクトの識別をご覧ください。
- LOCATION をインスタンスのリージョンに置き換えます。
OAuth 画面が表示され、プロバイダ名の入力が求められます。
Workforce Identity プロバイダの名前を次の形式で入力します。
locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID次のように置き換えます。
POOL_IDを Workforce Identity 連携プール ID に置き換えます。PROVIDER_IDを Workforce Identity 連携プロバイダ ID に置き換えます。
Workforce Identity 連携プールとプロバイダの詳細については、 Workforce Identity 連携 ID プールとプロバイダを管理するをご覧ください。
プロバイダの認証情報を使用してログインするように求められます。
プロバイダの認証情報を使用してログインします。
Secure Source Manager ウェブ インターフェースが開きます。ここから、リポジトリ、問題、pull リクエストを作成して表示できます。
Workforce Identity 連携プールのセッション継続時間 が切れたら、ウェブ インターフェースから再度ログインする必要があります。
gcloud CLI ログイン構成を作成する
gcloud CLI コマンドまたは Git コマンドを使用して、Workforce Identity プールの認証情報で Secure Source Manager インスタンスを認証するには、Workforce Identity プールを使用してログイン構成を作成する必要があります。
Workforce Identity プールのログイン構成を作成するには、 Workforce Identity 連携の一時トークンを取得するの手順に沿って、 gcloud CLI を使用してブラウザベースのログインを作成します。
認証が完了したら、Git コマンドを使用して Secure Source Manager インスタンスを操作できます。Git の使用を開始するには、Git ソースコード管理を使用するをご覧ください。