Mentransfer data dari Amazon S3 ke Cloud Storage menggunakan Kontrol Layanan VPC dan Storage Transfer Service


Tutorial ini menjelaskan cara melakukan hardening transfer data dari Amazon Simple Storage Service (Amazon S3) ke Cloud Storage menggunakan Storage Transfer Service dengan perimeter Kontrol Layanan VPC. Tutorial ini ditujukan bagi pemilik data yang memiliki data yang berada di Amazon S3, dan yang ingin memproses atau memigrasikan data tersebut dengan aman ke Google Cloud.

Tutorial ini mengasumsikan bahwa Anda sudah memahami Amazon Web Services (AWS) dan dasar-dasar penggunaan data di penyimpanan objek. Tutorial ini menerapkan metode kontrol akses berbasis akun layanan menggunakan Access Context Manager. Untuk tingkat akses lanjutan di luar metode berbasis akun layanan, lihat Membuat tingkat akses.

Arsitektur

Diagram berikut menguraikan arsitektur Kontrol Layanan VPC.

Arsitektur Kontrol Layanan VPC tempat komunikasi antara layanan Google Cloud ditolak di luar perimeter yang dikontrol.

Dalam diagram sebelumnya, Kontrol Layanan VPC secara eksplisit menolak komunikasi antara layanan Google Cloud kecuali jika kedua project berada dalam perimeter yang dikontrol.

Tujuan

  • Konfigurasi akses AWS.
  • Membuat perimeter Kontrol Layanan VPC.
  • Buat kebijakan akses dan tingkat akses menggunakan Access Context Manager.
  • Gunakan Storage Transfer Service untuk memindahkan data antara Amazon S3 dan Cloud Storage.
  • Jadwalkan Storage Transfer Service untuk mengambil data sesuai jadwal.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Tidak ada biaya tambahan untuk menggunakan Storage Transfer Service; namun, harga Cloud Storage dan biaya penyedia eksternal berlaku saat menggunakan Storage Transfer Service.

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Selain resource Google Cloud, tutorial ini menggunakan resource Amazon Web Services (AWS) berikut, yang mungkin memiliki biaya:

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the Access Context Manager, Cloud Storage, and Storage Transfer Service APIs.

    Enable the APIs

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  7. Enable the Access Context Manager, Cloud Storage, and Storage Transfer Service APIs.

    Enable the APIs

  8. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  9. Di konsol Google Cloud, buka halaman IAM and Admin untuk memberi akun Anda peran Storage Admin dan Access Context Manager Admin.
    Buka halaman IAM & Admin
  10. Peran Storage Admin memiliki izin berikut.

    • firebase.projects.get
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • storage.buckets.*
    • storage.objects.*

    Peran Admin Access Context Manager memiliki izin berikut:

    • accesscontextmanager.accessLevels.*
    • accesscontextmanager.accessPolicies.*
    • accesscontextmanager.accessPolicies.setIamPolicy
    • accesscontextmanager.accessPolicies.update
    • accesscontextmanager.accessZones.*
    • accesscontextmanager.policies.*
    • accesscontextmanager.servicePerimeters.*
    • resourcemanager.organizations.get

Mengonfigurasi akses AWS

Dalam tutorial ini, Anda akan bekerja dengan pengguna AWS Identity and Access Management (AWS IAM) yang ada untuk membuat kebijakan AWS IAM guna berinteraksi dengan StorageTransfer Service. Kebijakan dan pengguna ini diperlukan untuk mengautentikasi koneksi Anda ke Google Cloud dan membantu mengamankan data dalam pengiriman. Tutorial ini mengharuskan Anda memiliki bucket Amazon S3 untuk mentransfer data; Anda dapat menggunakan bucket Amazon S3 yang ada atau membuat bucket baru. Anda dapat menggunakan akun AWS pengujian atau sandbox agar tidak memengaruhi resource produksi di akun yang sama.

Membuat kebijakan AWS IAM untuk Storage Transfer Service dan menerapkannya ke bucket Anda

  1. Di AWS Management Console, buka halaman IAM.
  2. Klik Kebijakan, lalu klik Buat Kebijakan.
  3. Di editor visual, klik IAM Policy.
  4. Klik S3.
  5. Centang kotak Tingkat Akses berikut:

    • Cantumkan
    • Melihat
    • Menulis
  6. Di panel Resources, klik Specific.

  7. Di panel Bucket, klik Add ARN.

  8. Di kolom Bucket Name, masukkan nama bucket asal transfer data Anda.

  9. Klik Review Policy dan masukkan nama seperti transfer-user-policy.

  10. Klik Create Policy.

Menambahkan pengguna AWS IAM ke kebijakan AWS IAM Anda

  1. Di AWS Management Console, buka halaman IAM.
  2. Klik Pengguna, lalu klik Tambahkan Pengguna.
  3. Di kolom Name, masukkan transfer-user.
  4. Untuk Jenis Akses, klik Akses Terprogram dan lampirkan transfer-user-policy yang Anda buat untuk pengguna tersebut.
  5. Setelah membuat pengguna, catat ID akses dan pasangan kunci rahasia Anda karena akan digunakan nanti dalam tutorial.
  6. Klik Simpan.

Membuat bucket Cloud Storage

Sebelum dapat mengaktifkan perimeter Kontrol Layanan VPC, Anda harus membuat bucket Cloud Storage.

  1. Di konsol Google Cloud, buka Browser Cloud Storage.

    Buka halaman Browser Cloud Storage

  2. Klik Create bucket.

  3. Di kolom Name, masukkan nama, seperti project-id-destination-bucket dengan project-id mewakili project ID Google Cloud Anda.

  4. Untuk Default storage class untuk bucket, klik Regional storage.

  5. Di menu drop-down Lokasi, klik region tempat data bucket disimpan.

  6. Klik Create.

Menemukan nama akun layanan operasi transfer Anda

Storage Transfer Service menggunakan akun layanan yang dikelola Google untuk berkomunikasi dengan resource Cloud Storage dan Pub/Sub dalam project Anda. Anda perlu menentukan nama akun layanan karena akan digunakan nanti dalam tutorial ini. Jika Anda belum pernah menggunakan Storage Transfer Service, langkah berikut akan membuat akun layanan Storage Transfer Service untuk Anda. Untuk informasi selengkapnya tentang akun layanan yang dikelola Google, lihat Akun layanan.

  1. Untuk menentukan nama akun layanan Anda, buka halaman Storage Transfer Service API.
  2. Di kolom String, masukkan ID project Google Cloud Anda.

    Nama akun layanan biasanya dalam format berikut: project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com

Membuat kebijakan akses di Access Context Manager

Kebijakan akses mengumpulkan perimeter layanan dan tingkat akses yang Anda buat untuk organisasi Anda. Organisasi hanya dapat memiliki satu kebijakan akses.

  1. Di konsol Google Cloud, buka halaman Settings.

    Buka halaman Setelan

  2. Catat ID project Google Cloud dan nama organisasi Anda.

  3. Di Cloud Shell, buat kebijakan:

    gcloud access-context-manager policies create \
        --organization organization-id --title policy-title
    
    • organization-id adalah ID organisasi yang Anda temukan sebelumnya.
    • policy-title adalah judul perimeter. Contoh, Example-Company-Access-Policy.

    Outputnya adalah sebagai berikut:

    Create request issued
    Waiting for operation [accessPolicies/policy-title/create/policy-number] to complete...done.
    Created.
    

    policy-number merepresentasikan ID unik yang ditetapkan untuk judul kebijakan.

Membuat perimeter Kontrol Layanan VPC Anda

Saat Anda membuat perimeter Kontrol Layanan VPC, Anda memulai tanpa traffic yang diizinkan. Kemudian, Anda akan membuat tingkat akses eksplisit untuk memungkinkan operasi transfer mengirim data ke perimeter yang dikontrol.

  1. Di konsol Google Cloud, buka halaman VPC Service Controls.

    Buka halaman Kontrol Layanan VPC

  2. Klik Perimeter Baru.

  3. Di kolom Nama, masukkan nama untuk perimeter, seperti data-transfer-perimeter.

  4. Biarkan Perimeter Reguler dipilih.

  5. Klik Tambahkan project dan tambahkan project yang Anda buat melalui tutorial ini ke daftar project yang ingin dilindungi.

  6. Klik Cloud Storage API.

  7. Biarkan Tingkat Akses tetap pada nilai default.

  8. Klik Simpan.

Membuat tingkat akses dalam kebijakan akses

Di bagian ini, Anda membatasi akses ke VPC melalui akun layanan.

  1. Di Cloud Shell, buat file YAML bernama conditions.yaml yang mencantumkan akun utama yang ingin Anda beri akses:

     - members:
         - serviceAccount:project-project-number@storage-transfer-service.iam.gserviceaccount.com
         - user:sysadmin@example.com
     

  2. Buat tingkat akses:

    gcloud access-context-manager levels create name \
        --title title \
        --basic-level-spec ~./conditions.yaml \
        --combine-function=OR \
        --policy=policy-id
    
    • name adalah nama unik untuk tingkat akses. Nama ini harus diawali dengan huruf dan hanya menyertakan huruf, angka, serta garis bawah.
    • title adalah judul yang unik untuk kebijakan, seperti trusted-identity-ingest.
    • policy-id adalah ID (angka) kebijakan akses organisasi Anda.
    • combine-function disetel ke OR. Nilai default AND mengharuskan semua kondisi terpenuhi sebelum tingkat akses diberikan. Nilai OR memberi akun utama akses meskipun kondisi lain, seperti alamat IP atau yang diwarisi dari tingkat akses yang diperlukan lainnya tidak terpenuhi.

    Outputnya mirip dengan hal berikut ini:

    Create request issued for: name
    Waiting for operation [accessPolicies/policy-id/accessLevels/name/create/access-level-number] to complete...done.
    Created level name.
    

    access-level-number merepresentasikan ID unik yang ditetapkan untuk tingkat akses.

Mengikat tingkat akses ke Kontrol Layanan VPC

  1. Di konsol Google Cloud, buka VPC Service Controls.

    Buka halaman Kontrol Layanan VPC

  2. Klik Edit untuk VPC Service Control.

  3. Klik Tingkat Akses dan pilih tingkat akses trusted-identity-ingest.

  4. Klik Simpan.

Sekarang, satu-satunya operasi yang diizinkan dalam perimeter terkontrol adalah dari akun layanan yang Anda tentukan.

Memulai transfer

  1. Di konsol Google Cloud, buka halaman Transfer.

    Buka halaman Transfer

  2. Klik Buat Transfer.

  3. Klik bucket Amazon S3.

  4. Di kolom Amazon S3 bucket, masukkan nama bucket sumber Amazon S3 seperti yang muncul di AWS Management Console.

  5. Masukkan ID kunci akses dan Kunci rahasia yang terkait dengan bucket Amazon S3. Anda menyalin nilai ini di awal tutorial ini.

  6. Di bagian Select destination, masukkan nama bucket yang Anda buat di perimeter, seperti project-id-destination-bucket.

  7. Untuk Konfigurasi transfer, jadwalkan tugas transfer Anda ke Jalankan sekarang.

  8. Opsional: Edit nama tugas transfer.

  9. Untuk Description, gunakan nama deskriptif yang unik guna membantu Anda mengidentifikasi tugas transfer Anda nanti.

  10. Klik Create.

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus project

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya