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.
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.
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
- 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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Enable the Access Context Manager, Cloud Storage, and Storage Transfer Service APIs.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Enable the Access Context Manager, Cloud Storage, and Storage Transfer Service APIs.
-
Di konsol Google Cloud, 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.
- 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 firebase.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.*
storage.objects.*
accesscontextmanager.accessLevels.*
accesscontextmanager.accessPolicies.*
accesscontextmanager.accessPolicies.setIamPolicy
accesscontextmanager.accessPolicies.update
accesscontextmanager.accessZones.*
accesscontextmanager.policies.*
accesscontextmanager.servicePerimeters.*
resourcemanager.organizations.get
Peran Storage Admin memiliki izin berikut.
Peran Admin Access Context Manager memiliki izin berikut:
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
- Di AWS Management Console, buka halaman IAM.
- Klik Kebijakan, lalu klik Buat Kebijakan.
- Di editor visual, klik IAM Policy.
- Klik S3.
Centang kotak Tingkat Akses berikut:
- Cantumkan
- Melihat
- Menulis
Di panel Resources, klik Specific.
Di panel Bucket, klik Add ARN.
Di kolom Bucket Name, masukkan nama bucket asal transfer data Anda.
Klik Review Policy dan masukkan nama seperti
transfer-user-policy
.Klik Create Policy.
Menambahkan pengguna AWS IAM ke kebijakan AWS IAM Anda
- Di AWS Management Console, buka halaman IAM.
- Klik Pengguna, lalu klik Tambahkan Pengguna.
- Di kolom Name, masukkan
transfer-user
. - Untuk Jenis Akses, klik Akses Terprogram dan lampirkan
transfer-user-policy
yang Anda buat untuk pengguna tersebut. - Setelah membuat pengguna, catat ID akses dan pasangan kunci rahasia Anda karena akan digunakan nanti dalam tutorial.
- Klik Simpan.
Membuat bucket Cloud Storage
Sebelum dapat mengaktifkan perimeter Kontrol Layanan VPC, Anda harus membuat bucket Cloud Storage.
Di konsol Google Cloud, buka Browser Cloud Storage.
Klik Create bucket.
Di kolom Name, masukkan nama, seperti
project-id-destination-bucket
denganproject-id
mewakili project ID Google Cloud Anda.Untuk Default storage class untuk bucket, klik Regional storage.
Di menu drop-down Lokasi, klik region tempat data bucket disimpan.
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.
- Untuk menentukan nama akun layanan Anda, buka halaman Storage Transfer Service API.
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.
Di konsol Google Cloud, buka halaman Settings.
Catat ID project Google Cloud dan nama organisasi Anda.
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.
Di konsol Google Cloud, buka halaman VPC Service Controls.
Klik Perimeter Baru.
Di kolom Nama, masukkan nama untuk perimeter, seperti
data-transfer-perimeter
.Biarkan Perimeter Reguler dipilih.
Klik Tambahkan project dan tambahkan project yang Anda buat melalui tutorial ini ke daftar project yang ingin dilindungi.
Klik Cloud Storage API.
Biarkan Tingkat Akses tetap pada nilai default.
Klik Simpan.
Membuat tingkat akses dalam kebijakan akses
Di bagian ini, Anda membatasi akses ke VPC melalui akun layanan.
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
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, sepertitrusted-identity-ingest
.policy-id
adalah ID (angka) kebijakan akses organisasi Anda.combine-function
disetel keOR
. Nilai defaultAND
mengharuskan semua kondisi terpenuhi sebelum tingkat akses diberikan. NilaiOR
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
Di konsol Google Cloud, buka VPC Service Controls.
Klik Edit untuk VPC Service Control.
Klik Tingkat Akses dan pilih tingkat akses
trusted-identity-ingest
.Klik Simpan.
Sekarang, satu-satunya operasi yang diizinkan dalam perimeter terkontrol adalah dari akun layanan yang Anda tentukan.
Memulai transfer
Di konsol Google Cloud, buka halaman Transfer.
Klik Buat Transfer.
Klik bucket Amazon S3.
Di kolom Amazon S3 bucket, masukkan nama bucket sumber Amazon S3 seperti yang muncul di AWS Management Console.
Masukkan ID kunci akses dan Kunci rahasia yang terkait dengan bucket Amazon S3. Anda menyalin nilai ini di awal tutorial ini.
Di bagian Select destination, masukkan nama bucket yang Anda buat di perimeter, seperti
project-id-destination-bucket
.Untuk Konfigurasi transfer, jadwalkan tugas transfer Anda ke Jalankan sekarang.
Opsional: Edit nama tugas transfer.
Untuk Description, gunakan nama deskriptif yang unik guna membantu Anda mengidentifikasi tugas transfer Anda nanti.
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
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.
- Lihat cara lanjutan lainnya untuk mengaktifkan tingkat akses menggunakan Access Context Manager