エージェント ベースの転送には、サービス エージェントと転送エージェント アカウントという 2 つの異なるエンティティに対するプロジェクト レベルの IAM 権限が必要です。
このページの権限は、転送にファイル システム、HDFS、または S3 互換ストレージが関係する場合にのみ構成してください。転送がエージェントレスの場合は、このページでロールを構成しないでください。ソースと宛先へのアクセスを構成するに進みます。
エージェント ベースの転送では、次の ID が使用されます。
- サービス エージェント: Storage Transfer Service が転送エージェントとタスクを調整するために使用する、Google が管理するサービス アカウント。
- 転送エージェント アカウント: クライアント マシンまたはインスタンスで転送エージェントを認証して実行するために使用される Google Cloud ユーザー アカウントまたはユーザー管理のサービス アカウント。
IAM ロールの付与に関する一般的な情報については、リソースに対するアクセス権の付与、変更、取り消しをご覧ください。
サービス エージェントの権限
Storage Transfer Service は、サービス エージェントを使用して、エージェント駆動の転送を調整します。
Storage Transfer Service が Google Cloud と転送エージェント間の処理を調整できるようにするには、Storage Transfer Service を実行しているプロジェクトのサービス エージェントに次のロールを付与します。
- Storage Transfer Service エージェント(
roles/storagetransfer.serviceAgent)
サービス エージェントのメールアドレスを取得する
サービス エージェントにロールを付与するには、サービス エージェントのメールアドレス識別子が必要です。サービス エージェントは、転送ジョブを初めて作成するとき、gcloud transfer 設定コマンドを実行するとき、 Google Cloud コンソールの [Storage Transfer] ページにアクセスするとき、または googleServiceAccounts.get を呼び出すときに自動的に作成されます。
サービス エージェントのメールアドレスを取得するには:
googleServiceAccounts.getリファレンス ページに移動します。[Try this method] というインタラクティブ パネルが開きます。- [Request parameters] にプロジェクト ID を入力します。
- [実行] をクリックします。
accountEmail の値をコピーします。メールアドレスは project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com の形式で指定します。
サービス エージェントのロールを付与する
Storage Transfer Service エージェントのロールを付与するには:
Google Cloud コンソール
Google Cloud コンソールで、Storage Transfer Service を実行しているプロジェクトの [IAM] ページに移動します。
[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、サービス エージェントのメールアドレスを入力します。
[ロールを選択] プルダウン リストで、[Storage Transfer Service エージェント](
roles/storagetransfer.serviceAgent)を検索して選択します。[保存] をクリックします。
gcloud
gcloud projects add-iam-policy-binding を実行します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_AGENT_EMAIL" \ --role="roles/storagetransfer.serviceAgent"
次のように置き換えます。
- PROJECT_ID: Storage Transfer Service を実行しているプロジェクト。
- SERVICE_AGENT_EMAIL: サービス エージェントのメールアドレス。
転送エージェント アカウントの権限
転送エージェントは、ユーザー アカウントまたはユーザー管理のサービス アカウントの認証情報を使用して、クライアント マシンで実行されます。
- ユーザー アカウントは、認証済みユーザーの認証情報を使用します。
- ユーザー管理のサービス アカウントは、サービス アカウント キーまたは ID 連携を使用します。サービス アカウントを作成するには、サービス アカウントの作成と管理をご覧ください。
転送エージェントが Storage Transfer Service に接続し、タスクを受信して、ステータスをログに記録することを承認するには、エージェント プールをホストする Google Cloud プロジェクトに次のロールを割り当てます。
- Storage Transfer エージェント(
roles/storagetransfer.transferAgent)
このロールを付与するには:
Google Cloud コンソール
Google Cloud コンソールで、[IAM] ページに移動します。
エージェント プールを含むプロジェクトが選択されていることを確認します。
[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、ユーザー アカウントまたはユーザー管理のサービス アカウントのメールアドレスを入力します。
[ロールを選択] プルダウン リストで、[Storage Transfer Agent](
roles/storagetransfer.transferAgent)を検索して選択します。[保存] をクリックします。
gcloud
gcloud projects add-iam-policy-binding を実行します。
gcloud projects add-iam-policy-binding AGENT_POOL_PROJECT_ID \ --member="serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT" \ --role="roles/storagetransfer.transferAgent"
次のように置き換えます。
- AGENT_POOL_PROJECT_ID: エージェント プールを含むプロジェクト。
- serviceAccount_OR_user: 転送エージェント アカウントがサービス アカウントの場合は
serviceAccountを指定し、エージェントがユーザー アカウントでインストールされている場合はuserを指定します。 - TRANSFER_AGENT_ACCOUNT: 転送エージェントを実行しているアカウントのメールアドレス。
次のステップ
プロジェクトの権限を構成したら、次の設定手順を順番に実施します。
- エージェント プールを作成する。
- プールに転送エージェントをインストールします。
- ストレージ システムのアクセス権限を構成します。
- ロールと権限のリファレンス全体を確認する。