Mengonfigurasi akses ke sink: sistem file

Saat mentransfer data ke sistem file lokal atau cloud pribadi (seperti POSIX, NFS, atau SMB), Anda harus mengonfigurasi hal berikut:

  • Izin sistem file lokal: Berikan akses tulis tingkat OS kepada agen transfer tujuan ke direktori target Anda.
  • Izin bucket perantara (khusus file-ke-file): Memberikan peran IAM pada bucket Cloud Storage perantara yang digunakan untuk melakukan staging file antar-sistem file.

Prasyarat

  • Izin pengguna: Pastikan akun pengguna atau akun layanan terkelola pengguna memiliki izin untuk mengonfigurasi tugas transfer dan kumpulan agen. Lihat Izin pengguna yang diperlukan.
  • Izin level project berbasis agen: Pastikan Anda telah mengonfigurasi peran level project yang diperlukan untuk akun agen layanan dan agen transfer. Lihat Izin level project berbasis agen.

Izin sistem file target lokal

Agen transfer menulis file langsung ke sistem file host Anda. Untuk mengaktifkan penulisan yang berhasil:

  1. Izin pengguna OS: Pastikan pengguna sistem operasi yang menjalankan proses container memiliki izin baca, tulis, dan eksekusi pada hierarki direktori tujuan.

  2. Memasang direktori: Saat menginstal agen tujuan, pasang jalur direktori target ke dalam container menggunakan flag --mount-directories:

    gcloud transfer agents install --pool=DESTINATION_POOL_NAME \
     --mount-directories=/path/to/destination/dir

Izin bucket perantara (transfer file ke file)

Transfer antara dua sistem file menggunakan bucket Cloud Storage perantara untuk melakukan staging file selama transfer.

Peran bawaan berikut memberikan akses yang diperlukan pada bucket perantara kepada agen layanan:

  • Storage Object Creator (roles/storage.objectCreator)
  • Storage Object Viewer (roles/storage.objectViewer)
  • Storage Legacy Bucket Reader (roles/storage.legacyBucketReader)

Peran berikut memberikan akses yang diperlukan pada bucket perantara ke akun agen transfer:

  • Storage Object User (roles/storage.objectUser)

Berikan peran ini pada bucket perantara:

Konsol

  1. Di konsol Google Cloud , buka halaman Buckets Cloud Storage.

    Buka Buckets

  2. Klik menu Bucket overflow () untuk bucket perantara, lalu pilih Edit access.
  3. Klik + Add principal.
  4. Di New principals, masukkan email agen layanan Anda.
  5. Pilih Storage Object Creator, Storage Object Viewer, dan Storage Legacy Bucket Reader dari menu drop-down Pilih peran.
  6. Klik + Add principal lagi.
  7. Masukkan alamat email akun agen transfer yang digunakan untuk pool agen sumber dan tujuan Anda.
  8. Pilih Storage Object User dari menu drop-down Select a role.
  9. Klik Simpan.

gcloud

  1. Berikan peran logging dan metadata ke agen layanan:

    gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \
        --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectCreator
    gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \
        --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectViewer
    gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \
        --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.legacyBucketReader
  2. Berikan peran pengelolaan objek ke akun agen transfer untuk kumpulan agen sumber dan tujuan:

    gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \
        --member=serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT --role=roles/storage.objectUser

    Ganti:

    • INTERMEDIATE_BUCKET_NAME: Nama bucket staging perantara Anda.
    • SERVICE_AGENT_EMAIL: Email agen layanan.
    • serviceAccount_OR_user: Tentukan serviceAccount jika akun agen transfer Anda adalah akun layanan, atau user jika agen Anda diinstal dengan akun pengguna.
    • TRANSFER_AGENT_ACCOUNT: Email akun yang menjalankan agen transfer. Ulangi perintah ini jika kumpulan agen sumber dan tujuan Anda menggunakan akun yang berbeda.

REST API

  1. Buat token akses untuk mengautentikasi permintaan Anda. Jika Anda menggunakan gcloud CLI, jalankan:

    gcloud auth print-access-token
  2. Ambil kebijakan IAM bucket yang ada (GET https://storage./storage/v1/b/<var>INTERMEDIATE_BUCKET_NAME</var>/iam), tambahkan binding berikut ke array bindings-nya, dan simpan kebijakan yang digabungkan sebagai intermediate_policy.json:

    {
      "bindings": [
        {
          "role": "roles/storage.objectCreator",
          "members": ["serviceAccount:SERVICE_AGENT_EMAIL"]
        },
        {
          "role": "roles/storage.objectViewer",
          "members": ["serviceAccount:SERVICE_AGENT_EMAIL"]
        },
        {
          "role": "roles/storage.legacyBucketReader",
          "members": ["serviceAccount:SERVICE_AGENT_EMAIL"]
        },
        {
          "role": "roles/storage.objectUser",
          "members": ["serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT"]
        }
      ]
    }

    Ganti:

    • SERVICE_AGENT_EMAIL: Email agen layanan.
    • serviceAccount_OR_user: Tentukan serviceAccount jika akun agen transfer Anda adalah akun layanan, atau user jika agen Anda diinstal dengan akun pengguna.
    • TRANSFER_AGENT_ACCOUNT: Email akun yang menginstal agen transfer Anda. Jika pool agen sumber dan tujuan Anda menggunakan akun yang berbeda, sertakan kedua akun dalam array members untuk roles/storage.objectUser.
  3. Perbarui kebijakan bucket perantara melalui curl:

    curl -X PUT --data-binary @intermediate_policy.json \
        -H "Authorization: Bearer OAUTH2_TOKEN" \
        -H "Content-Type: application/json" \
        "https://storage./storage/v1/b/INTERMEDIATE_BUCKET_NAME/iam"

    Ganti:

    • OAUTH2_TOKEN: Token akses OAuth 2.0 yang dibuat di langkah 1.
    • INTERMEDIATE_BUCKET_NAME: Nama bucket perantara Anda.

Untuk mengetahui informasi selengkapnya tentang arsitektur file ke file, lihat Transfer sistem file ke sistem file.

Performa dan pengoptimalan

  • Untuk memaksimalkan throughput saat mentransfer ke sistem file besar, instal beberapa agen di kumpulan agen tujuan Anda (disarankan minimal 3). Lihat Praktik terbaik untuk agen transfer.
  • Untuk file besar dalam transfer file ke file, pertimbangkan untuk mengaktifkan upload multibagian ke bucket perantara. Saat menggunakan Storage Object User (roles/storage.objectUser), izin upload multibagian yang diperlukan (storage.multipartUploads.*) akan disertakan secara otomatis.

Langkah berikutnya