Tutorial: Mentransfer data dari Amazon S3 ke Amazon S3 Akun AWS - AWS DataSync

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial: Mentransfer data dari Amazon S3 ke Amazon S3 Akun AWS

DenganAWS DataSync, Anda dapat memindahkan data antara bucket Amazon S3 yang berbeda. Akun AWS

penting

Menyalin data Akun AWS menggunakan metode dalam tutorial ini hanya berfungsi dengan Amazon S3. Selain itu, tutorial ini dapat membantu Anda mentransfer data antara bucket S3 yang juga berbeda Wilayah AWS (kecuali jika Anda bekerja dengan satu atau lebih Wilayah keikutsertaan).

Ikhtisar

Tidak jarang perlu mentransfer data antara yang berbedaAkun AWS, terutama jika Anda memiliki tim terpisah yang mengelola sumber daya organisasi Anda. Seperti inilah tampilan transfer lintas DataSync akun:

  • Akun sumber: Akun AWS Untuk mengelola bucket S3 yang Anda perlukan untuk mentransfer data.

  • Akun tujuan: Akun AWS Untuk mengelola bucket S3 yang Anda perlukan untuk mentransfer data.

Transfers across accounts

Diagram berikut mengilustrasikan skenario di mana Anda mentransfer data dari bucket S3 ke bucket S3 lain yang berbeda. Akun AWS

Contoh DataSync skenario pemindahan data dari bucket S3 dalam satu Akun AWS (akun sumber Anda) sebelum membuatnya menjadi bucket S3 di akun lain Akun AWS (akun tujuan Anda).
Transfers across accounts and Regions

Diagram berikut mengilustrasikan skenario di mana Anda mentransfer data dari bucket S3 ke bucket S3 lain yang berada di berbeda Akun AWS dan Region.

Contoh DataSync skenario pemindahan data dari bucket S3 dalam satu Akun AWS (akun sumber Anda) dan Wilayah sebelum membuatnya menjadi bucket S3 di Akun AWS (akun tujuan Anda) dan Wilayah yang berbeda.

Izin yang diperlukan

Sebelum memulai, pastikan sumber dan tujuan Anda Akun AWS memiliki izin yang tepat untuk menyelesaikan transfer lintas akun antar bucket S3.

Izin yang diperlukan untuk akun sumber Anda

Untuk sumber AndaAkun AWS, ada dua set izin yang perlu dipertimbangkan untuk transfer lintas akun semacam ini. Satu set izin adalah untuk pengguna yang bekerja dengan DataSync untuk membuat dan memulai tugas transfer (misalnya, administrator penyimpanan Anda). Kumpulan izin lainnya memungkinkan DataSync layanan untuk mentransfer objek ke bucket S3 di akun tujuan Anda atas nama Anda.

User permissions

Minimal, Anda memerlukan izin berikut di akun sumber Anda untuk digunakan DataSync saat mengikuti tutorial ini:

  • datasync:CancelTaskExecution

  • datasync:CreateLocationS3

  • datasync:CreateTask

  • datasync:DescribeLocation*

  • datasync:DescribeTask

  • datasync:DescribeTaskExecution

  • datasync:ListLocations

  • datasync:ListTasks

  • datasync:ListTaskExecutions

  • datasync:StartTaskExecution

  • iam:AttachRolePolicy

  • iam:CreateRole

  • iam:CreatePolicy

  • iam:ListRoles

  • iam:PassRole

  • s3:GetBucketLocation

  • s3:ListAllMyBuckets

  • s3:ListBucket

Tip

Untuk izin pengguna, pertimbangkan untuk menggunakan AWSDataSyncFullAccess, kebijakan AWS terkelola yang menyediakan akses penuh DataSync dan akses minimal ke dependensinya. Kebijakan terkelola ini juga menyediakan pencatatan tugas transfer secara default.

DataSync permissions

DataSync memerlukan izin untuk menulis data ke bucket S3 di akun tujuan Anda atas nama Anda. Di akun sumber Anda, Anda akan membuat peran AWS Identity and Access Management (IAM) yang dapat melakukan ini. Anda kemudian akan menentukan peran ini saat membuat lokasi DataSync tujuan Anda.

Izin yang diperlukan untuk akun tujuan Anda

Untuk tujuanAkun AWS, Anda memerlukan izin untuk menonaktifkan daftar kontrol akses (ACL) bucket S3 dan memperbarui kebijakan bucket. Untuk informasi selengkapnya tentang izin khusus ini, lihat Panduan Pengguna Amazon S3.

Langkah 1: Di akun sumber Anda, buat lokasi DataSync sumber

Di akun sumber Anda, buat DataSynclokasi untuk bucket S3 tempat Anda mentransfer data.

Jika Anda membuat lokasi dengan menggunakan DataSync konsol, Anda dapat membiarkan DataSync secara otomatis membuat dan mengambil peran IAM yang diperlukan untuk mengakses bucket S3 sumber Anda.

Langkah 2: Di akun sumber Anda, buat peran IAM untuk DataSync

Di akun sumber, Anda memerlukan peran IAM yang memberikan DataSync izin untuk menulis ke bucket S3 di akun tujuan atas nama Anda.

Biasanya, saat Anda membuat lokasi transfer untuk bucket S3 di DataSync konsol, secara otomatis DataSync dapat membuat dan mengambil peran yang memiliki izin yang tepat untuk menulis ke bucket tersebut. Namun, karena Anda mentransfer lintas akun, Anda harus membuat peran secara manual.

Buat peran IAM

Buat peran IAM dengan DataSync sebagai entitas tepercaya.

Untuk membuat peran IAM
  1. Masuk ke AWS Management Console akun sumber Anda.

  2. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  3. Di panel navigasi kiri, di bawah Manajemen akses, pilih Peran, lalu pilih Buat peran.

  4. Pada halaman Pilih entitas tepercaya, untuk jenis entitas Tepercaya, pilih Layanan AWS.

  5. Untuk kasus Penggunaan, pilih DataSyncdi daftar dropdown dan pilih. DataSync Pilih Berikutnya.

  6. Pada halaman Tambahkan izin, pilih Berikutnya.

  7. Beri nama peran Anda dan pilih Buat peran.

Untuk informasi selengkapnya, lihat Membuat peran untuk Layanan AWS (konsol) di Panduan Pengguna IAM.

Lampirkan kebijakan khusus ke peran IAM

Peran IAM yang baru saja Anda buat memerlukan kebijakan yang memungkinkan DataSync untuk menulis ke bucket S3 di akun tujuan Anda.

Untuk melampirkan kebijakan khusus ke peran IAM Anda
  1. Pada halaman Peran konsol IAM, cari peran yang baru saja Anda buat dan pilih namanya.

  2. Pada halaman detail peran, pilih tab Izin. Pilih Tambahkan izin lalu Buat kebijakan sebaris.

  3. Pilih tab JSON dan lakukan hal berikut:

    1. Tempelkan JSON berikut ke editor kebijakan:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::destination-bucket" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::destination-bucket/*" } ] }
    2. Ganti setiap instance destination-bucket dengan nama bucket S3 di akun tujuan Anda.

  4. Pilih Berikutnya. Beri nama kebijakan Anda dan pilih Buat kebijakan.

Langkah 3: Di akun tujuan Anda, nonaktifkan ACL untuk bucket S3 Anda

Penting bahwa semua data yang Anda transfer ke bucket S3 adalah milik akun tujuan Anda. Untuk memastikan bahwa akun ini memiliki data, nonaktifkan daftar kontrol akses (ACL) bucket.

Untuk menonaktifkan ACL untuk bucket S3
  1. DiAWS Management Console, beralih ke akun tujuan Anda.

  2. Buka konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  3. Di panel navigasi sebelah kiri, pilih Bucket.

  4. Dalam daftar Bucket, pilih bucket S3 tempat Anda mentransfer data.

  5. Pada halaman detail bucket, pilih tab Izin.

  6. Di bawah Kepemilikan Objek, pilih Edit.

  7. Jika belum dipilih, pilih opsi ACL dinonaktifkan (disarankan).

  8. Pilih Simpan perubahan.

Untuk informasi selengkapnya, lihat Mengontrol kepemilikan objek dan menonaktifkan ACL untuk bucket Anda di Panduan Pengguna Amazon S3.

Langkah 4: Di akun tujuan Anda, perbarui kebijakan bucket S3 Anda

Di akun tujuan, ubah kebijakan bucket S3 tujuan untuk menyertakan peran DataSync IAM yang Anda buat di akun sumber.

Kebijakan bucket yang diperbarui (diberikan kepada Anda dalam petunjuk berikut) mencakup dua prinsip:

Untuk memperbarui kebijakan bucket S3 tujuan
  1. Saat masih masuk ke konsol S3 dengan akun tujuan Anda, pilih bucket S3 tempat Anda mentransfer data.

  2. Pada halaman detail bucket, pilih tab Izin.

  3. Di bawah kebijakan Bucket, pilih Edit dan lakukan hal berikut untuk mengubah kebijakan bucket S3 Anda:

    1. Perbarui apa yang ada di editor untuk menyertakan pernyataan kebijakan berikut:

      { "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account:role/source-datasync-role" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::destination-bucket", "arn:aws:s3:::destination-bucket/*" ] }, { "Sid": "DataSyncCreateS3Location", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account:role/source-user-role" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::destination-bucket" } ] }
    2. Ganti setiap instance source-account dengan Akun AWS ID untuk akun sumber Anda.

    3. Ganti source-datasync-role dengan peran IAM yang Anda buat DataSync di akun sumber Anda.

    4. Ganti setiap instance destination-bucket dengan nama bucket S3 di akun tujuan Anda.

    5. Ganti source-user-role dengan peran IAM yang menyertakan izin pengguna yang diperlukan untuk digunakan. DataSync

  4. Pilih Simpan perubahan.

Langkah 5: Di akun sumber Anda, buat lokasi DataSync tujuan

Di akun sumber Anda, Anda perlu membuat DataSync lokasi untuk bucket S3 di akun tujuan Anda.

DataSync Konsol tidak akan membiarkan Anda membuat lokasi untuk sumber daya penyimpanan di tempat lainAkun AWS. Namun, Anda dapat melakukan ini dengan menggunakanAWS CloudShell, shell pra-otentikasi berbasis browser yang Anda luncurkan langsung dari konsol. CloudShell memungkinkan Anda menjalankan AWS CLI perintah untuk menyelesaikan tutorial ini tanpa mengunduh atau menginstal alat baris perintah.

catatan

Jika Anda ingin menyelesaikan langkah-langkah berikut dengan menggunakan alat baris perintah selain CloudShell, pastikan AWS CLI profil Anda menggunakan yang sama dengan source-user-role yang Anda tentukan dalam kebijakan bucket S3 tujuan. Untuk informasi selengkapnya, silakan lihat Panduan Pengguna AWS Command Line Interface.

Untuk membuat lokasi DataSync tujuan dengan menggunakan CloudShell
  1. DalamAWS Management Console, beralih kembali ke akun sumber Anda.

  2. Buka konsol AWS DataSync di https://console.aws.amazon.com/datasync/.

  3. Lakukan salah satu hal berikut untuk meluncurkan CloudShell:

    • Pilih CloudShell ikon di bilah navigasi konsol. Itu terletak di sebelah kanan kotak pencarian.

    • Gunakan kotak pencarian di bilah navigasi konsol untuk mencari CloudShelldan kemudian pilih CloudShellopsi.

  4. Salin perintah berikut:

    aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::destination-bucket \ --s3-config '{ "BucketAccessRoleArn":"arn:aws:iam::source-user-account:role/source-datasync-role" }'
  5. Ganti destination-bucket dengan nama bucket S3 di akun tujuan Anda.

  6. Ganti source-user-account dengan Akun AWS ID untuk akun sumber Anda.

  7. Ganti source-datasync-role dengan peran DataSync IAM yang Anda buat di akun sumber Anda.

  8. Jika bucket tujuan Anda berada di Region yang berbeda dari bucket sumber, tambahkan --region opsi ke perintah untuk menentukan Region tempat bucket tujuan berada. Misalnya, --region us-east-2.

  9. Jalankan perintah di CloudShell.

    Jika perintah mengembalikan DataSync lokasi ARN mirip dengan ini, Anda berhasil membuat lokasi:

    { "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
  10. Di panel navigasi kiri, perluas Transfer data, lalu pilih Lokasi.

  11. Jika Anda membuat lokasi di Wilayah lain, pilih Wilayah tersebut di panel navigasi.

Dari akun sumber Anda, Anda dapat melihat lokasi bucket S3 di akun tujuan yang baru saja Anda buat.

Langkah 6: Di akun sumber Anda, buat dan mulai tugas DataSync transfer Anda

Sebelum Anda memindahkan data Anda, mari kita rekap apa yang telah Anda lakukan sejauh ini:

  • Di akun sumber, Anda membuat peran IAM yang memungkinkan DataSync untuk menulis data ke bucket S3 di akun tujuan Anda.

  • Di akun tujuan, Anda mengonfigurasi bucket S3 sehingga DataSync dapat mengakses bucket dan menulis data ke dalamnya.

  • Di akun sumber Anda, Anda membuat lokasi DataSync sumber dan tujuan untuk transfer Anda.

Untuk membuat dan memulai tugas DataSync transfer
  1. Saat masih menggunakan DataSync konsol di akun sumber Anda, perluas Transfer data di panel navigasi kiri, lalu pilih Tugas dan Buat tugas.

  2. Jika bucket di akun tujuan Anda berada di Wilayah yang berbeda dari bucket di akun sumber Anda, pilih Wilayah bucket tujuan di panel navigasi atas.

    penting

    Untuk menghindari kesalahan koneksi jaringan, Anda harus membuat DataSync tugas Anda di Wilayah yang sama dengan lokasi tujuan.

  3. Pada halaman Konfigurasi lokasi sumber, lakukan hal berikut:

    1. Pilih Pilih lokasi yang ada.

    2. (Untuk transfer lintas Wilayah) Di menu tarik-turun Wilayah, pilih Wilayah tempat bucket sumber berada.

    3. Untuk lokasi yang ada, pilih lokasi sumber untuk bucket S3 tempat Anda mentransfer data, lalu pilih Berikutnya.

  4. Pada halaman Konfigurasi lokasi tujuan, lakukan hal berikut:

    1. Pilih Pilih lokasi yang ada.

    2. Untuk lokasi yang ada, pilih lokasi tujuan untuk bucket S3 tempat Anda mentransfer data, lalu pilih Berikutnya.

  5. Pada halaman Konfigurasi pengaturan, beri nama tugas. Jika diperlukan, konfigurasikan pengaturan tambahan, seperti menentukan grup CloudWatch log Amazon. Pilih Berikutnya.

  6. Pada halaman Tinjauan, tinjau pengaturan Anda dan pilih Buat tugas.

  7. Pada halaman detail tugas, pilih Mulai, lalu pilih salah satu dari berikut ini:

    • Untuk menjalankan tugas tanpa modifikasi, pilih Mulai dengan default.

    • Untuk mengubah tugas sebelum menjalankannya, pilih Mulai dengan opsi utama.

Saat tugas Anda selesai, periksa bucket S3 di akun tujuan Anda. Anda akan melihat data yang dipindahkan dari bucket akun sumber Anda.

Memecahkan masalah

Lihat informasi berikut jika Anda mengalami masalah saat mencoba menyelesaikan transfer lintas akun Anda.

Kesalahan izin

Saat menyiapkan transfer lintas akun dengan Amazon S3, Anda mungkin melihat kesalahan izin. Misalnya, berikut adalah kesalahan izin umum saat mencoba membuat lokasi tujuan S3:

An error occurred (InvalidRequestException) when calling the CreateLocationS3 operation: DataSync location access test failed: could not perform s3:HeadBucket on bucket DOC-EXAMPLE-DESTINATION-BUCKET. Access denied. Ensure bucket access role has s3:ListBucket permission.

Kesalahan ini berarti bahwa izin Akun AWS pengguna sumber Anda tidak memiliki s3:ListBucket izin. Izin ini untuk pengguna yang membuat dan memulai DataSync tugas. Tambahkan s3:ListBucket ke izin pengguna Anda dan coba lagi untuk membuat lokasi tujuan.

Kesalahan koneksi

Saat mentransfer antara bucket S3 di berbeda Akun AWS dan Wilayah, Anda mungkin mendapatkan kesalahan koneksi jaringan saat memulai tugas. DataSync Untuk mengatasinya, buat tugas di Wilayah yang sama dengan lokasi tujuan Anda dan coba jalankan tugas itu.

Sumber daya terkait

Untuk informasi lebih lanjut tentang apa yang Anda lakukan dalam tutorial ini, lihat topik berikut: