> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/datasets/ja/toappurdo/adding-data/datasource-credentials/gcs.md).

# Google Cloud Storage の認証情報

GCS データソース用の Google Cloud 認証情報を安全に作成します。

Roboflow に Google Cloud Storage バケットをミラーリングさせたいときに、このページを使用します [データソース](/datasets/ja/toappurdo/adding-data/datasources.md).

{% hint style="warning" %}
Google Cloud Storage では、継続的な同期、再インポート、またはメタデータのサイドカーサポートが必要なときは、Datasources と Bucket Mirror を使用してください。この用途では、署名付き URL やローカルダウンロードのワークフローを構築しないでください。
{% endhint %}

## 認証情報の種類を選択

Roboflow は、GCS Datasources に対して 3 つの Google Cloud アクセス パターンをサポートしています:

1. [**なりすまし**](#use-service-account-impersonation): 推奨: キー不要。Roboflow は短命なトークンを使用します
2. [**直接付与**](#use-a-direct-bucket-grant): Roboflow のサービスアカウントに、バケット上で直接読み取りアクセスを付与します
3. [**JSON キー**](#use-a-service-account-json-key): レガシー: エクスポートされたサービスアカウントキー。後方互換性のために保持されています

[なりすまし](#use-service-account-impersonation) と [直接付与](#use-a-direct-bucket-grant) はキー不要です: 秘密情報が Google Cloud プロジェクトの外に出ることはありません。Google [はエクスポート可能なキーの使用を推奨していません](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys) （また、多くの組織ではポリシーでそれらをブロックしています）そのため、キー不要のオプションを優先してください。

### セキュリティガイドライン

認証情報を作成する前に:

1. Roboflow 用に専用のサービスアカウントを使用してください。
2. のみ付与 **Storage Object Viewer** (`roles/storage.objectViewer`）、特定のバケットにスコープを限定してください。
3. 優先してください [なりすまし](#use-service-account-impersonation) または [直接付与](#use-a-direct-bucket-grant) よりも [エクスポートされた JSON キー](#use-a-service-account-json-key).
4. 認証情報は Roboflow Workspace にのみ保存してください [認証情報](https://app.roboflow.com/settings/thirdpartykeys) または独自のシークレットマネージャーに保存してください。
5. IAM 付与を削除することで、いつでも Roboflow のアクセスを取り消せます。

どちらのキー不要モードでも、付与は次を使ってワークスペースにバインドされます: **ワークスペーストークン** ［認証情報を作成］モーダルに表示されます（Google Cloud には AWS のような External ID はありません）。作成している認証情報と一緒にトークンを保管してください。

### サービスアカウントのなりすましを使用

**推奨。キーのやり取りはありません。** Roboflow は [サービスアカウントのなりすまし](https://cloud.google.com/iam/docs/service-account-impersonation) を使用して、短命なトークンでバケットを読み取ります。

1. Roboflow で、 [Google Cloud（なりすまし）の認証情報を追加](https://app.roboflow.com/settings/thirdpartykeys#create/gcsImpersonation)。モーダルには **必要なサービスアカウント名** (`rf-datasource-<token>`）と **Roboflow のサービスアカウント**が表示されます。開いたままにしておいてください。両方の値が必要です。
2. その正確な名前で、プロジェクト内にサービスアカウントを作成してください（名前にワークスペーストークンが埋め込まれており、付与がワークスペースにバインドされます）:

   * を開いてください [Service Accounts コンソール](https://console.cloud.google.com/iam-admin/serviceaccounts/create).
   * 設定します **サービスアカウント ID** （ `@`の前の部分 `rf-datasource-<token>` モーダルで指定されたものと一致させてから、 **作成して続行** → **完了**.

   CLI を使いますか？

   ```sh
   gcloud iam service-accounts create rf-datasource-<token> --project YOUR_PROJECT
   ```
3. 付与してください **その新しいサービスアカウントに** バケットへの読み取りアクセスを:

   * を開いてください [Cloud Storage ブラウザ](https://console.cloud.google.com/storage/browser) → あなたのバケット → **権限** → **アクセスを付与**.
   * 新しいプリンシパル = `rf-datasource-<token>@…` サービスアカウント、ロール = **Storage Object Viewer** → **保存**.

   CLI を使いますか？

   ```sh
   gsutil iam ch "serviceAccount:rf-datasource-<token>@YOUR_PROJECT.iam.gserviceaccount.com:roles/storage.objectViewer" gs://YOUR_BUCKET
   ```
4. 付与してください **Roboflow のサービスアカウント** その **Service Account Token Creator** ロール **先ほど作成したサービスアカウントに**。これにより Roboflow がそれをなりすましできるようになります:

   * で [Service Accounts](https://console.cloud.google.com/iam-admin/serviceaccounts)、あなたの `rf-datasource-<token>` サービスアカウント → **権限** タブ → **アクセスを付与**.
   * 新しいプリンシパル = モーダルに表示されている Roboflow のサービスアカウント、ロール = **Service Account Token Creator** → **保存**.

   CLI を使いますか？

   ```sh
   gcloud iam service-accounts add-iam-policy-binding rf-datasource-<token>@YOUR_PROJECT.iam.gserviceaccount.com \
     --member="serviceAccount:ROBOFLOW_SERVICE_ACCOUNT" \
     --role="roles/iam.serviceAccountTokenCreator" --project YOUR_PROJECT
   ```
5. モーダルに戻り、サービスアカウントのメールアドレスを入力して保存します。続けて [Roboflow で認証情報を作成](#create-the-credential-in-roboflow).

ワークスペーストークンはワークスペースと認証情報の種類に紐づいているため、モーダルを再度開いても同じ必要なサービスアカウント名が表示されます。

### 直接バケット付与を使用

**キーのやり取りはありません。** Roboflow のサービスアカウントにバケット上で直接読み取りアクセスを付与し、その後マーカーオブジェクトでそのバケットがワークスペースのものであることを証明します。

1. Roboflow で、 [Google Cloud（直接付与）の認証情報を追加](https://app.roboflow.com/settings/thirdpartykeys#create/gcsDirectAccess)。モーダルには **Roboflow のサービスアカウント** およびあなたの **ワークスペーストークン**.
2. Roboflow のサービスアカウントにバケットへの読み取りアクセスを付与してください:

   * を開いてください [Cloud Storage ブラウザ](https://console.cloud.google.com/storage/browser) → あなたのバケット → **権限** → **アクセスを付与**.
   * モーダルの Roboflow サービスアカウント、ロール = **Storage Object Viewer** → **保存**.

   CLI を使いますか？

   ```sh
   gsutil iam ch "serviceAccount:ROBOFLOW_SERVICE_ACCOUNT:roles/storage.objectViewer" gs://YOUR_BUCKET
   ```
3. 次の場所にマーカーオブジェクトをアップロードします: **`.roboflow/workspace-token`** 内容にワークスペーストークンを含めます（これによりバケットがワークスペースにバインドされます）:

   * で、 [Cloud Storage ブラウザ](https://console.cloud.google.com/storage/browser)バケットを開き、 **フォルダを作成** `.roboflow`、その後 **アップロード** という名前の小さなファイル `workspace-token` 内容がトークンであるもの。

   CLI を使いますか？

   ```sh
   printf 'YOUR_WORKSPACE_TOKEN' | gsutil cp - gs://YOUR_BUCKET/.roboflow/workspace-token
   ```
4. Roboflow で認証情報を保存し、続けて [Roboflow で認証情報を作成](#create-the-credential-in-roboflow).

Roboflow は `.roboflow/workspace-token` Datasource の検証中にマーカーを読み取り、これがないと失敗します。

### サービスアカウントの JSON キーを使用

**レガシー。キー不要のオプションが使えない場合にのみ使用してください。** Google [はエクスポート可能なキーの使用を推奨していません](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys)、また多くの組織ではポリシーでその作成をブロックしています。キー不要の [なりすまし](#use-service-account-impersonation) または [直接付与](#use-a-direct-bucket-grant) オプションを優先してください。

1. 専用のサービスアカウントを作成し、それに **Storage Object Viewer** バケットに対して（手順 2～3 と同じです [なりすまし](#use-service-account-impersonation)で付与してください, but the name can be anything).
2. その JSON キーを作成します:

   * で [Service Accounts](https://console.cloud.google.com/iam-admin/serviceaccounts)をクリックし、サービスアカウント → **Keys** タブ → **キーを追加** → **新しいキーを作成** → **JSON** → **作成**。ブラウザがキー ファイルをダウンロードします。
   * もし **新しいキーを作成** が無効になっている場合、組織ポリシーがキーのエクスポートをブロックしています。 [なりすまし](#use-service-account-impersonation) または [直接付与](#use-a-direct-bucket-grant) 代わりに

   CLI を使いますか？

   ```sh
   gcloud iam service-accounts keys create key.json --iam-account SA_EMAIL
   ```
3. Roboflow で、 [Google Cloud Storage（JSON キー）の認証情報を追加](https://app.roboflow.com/settings/thirdpartykeys#create/gcs)、プロジェクト ID を入力し、JSON キーを貼り付けて保存します。

## Roboflow で認証情報を作成

Google Cloud 側のアクセスを設定したら:

1. へ移動してください [認証情報](https://app.roboflow.com/settings/thirdpartykeys#create) Workspace 設定の中の
2. をクリックしてください **認証情報を追加** （または種類ごとのリンクを使用: [なりすまし](https://app.roboflow.com/settings/thirdpartykeys#create/gcsImpersonation), [直接付与](https://app.roboflow.com/settings/thirdpartykeys#create/gcsDirectAccess), [JSON キー](https://app.roboflow.com/settings/thirdpartykeys#create/gcs)).
3. 設定した Google Cloud Storage の認証情報タイプを選択します。
4. サービスアカウントのメールアドレス（[なりすまし](#use-service-account-impersonation)）、ワークスペーストークン マーカー（[直接付与](#use-a-direct-bucket-grant)）、またはプロジェクト ID + JSON キー（[JSON キー](#use-a-service-account-json-key)).
5. 認証情報を保存します。
6. を作成するときにその認証情報を選択します [データソース](https://app.roboflow.com/settings/datasources#create).

## 次のステップ

認証情報が保存されたら、続けて [データソース](/datasets/ja/toappurdo/adding-data/datasources.md) バケットミラーリングを設定するために。
