Tutorial: Mentransfer data dari penyimpanan lokal 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 penyimpanan lokal ke Amazon S3 Akun AWS

Saat menggunakan AWS DataSync penyimpanan lokal, Anda biasanya menyalin data ke layanan AWS penyimpanan yang dimiliki Akun AWS sama dengan DataSync agen Anda. Namun, ada situasi di mana Anda mungkin perlu mentransfer data ke bucket Amazon S3 yang terkait dengan akun lain.

penting

Menyalin data Akun AWS dengan menggunakan metode dalam tutorial ini hanya berfungsi ketika Amazon S3 adalah salah satu lokasi transfer DataSync .

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 sumber daya jaringan. Ini adalah akun yang akan Anda aktifkan dengan DataSync agen Anda.

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

Diagram berikut menggambarkan skenario semacam ini.

Contoh DataSync skenario perpindahan data dari sistem penyimpanan lokal melalui AWS Direct Connect koneksi di internet. AWS Data pertama kali ditransfer ke satu Akun AWS (akun sumber Anda), sebelum akhirnya membuatnya menjadi ember Amazon S3 di akun lain Akun AWS (akun tujuan Anda).

Izin yang diperlukan

Sebelum memulai, pastikan sumber dan tujuan Anda Akun AWS memiliki izin yang tepat untuk menyelesaikan transfer lintas akun ke 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

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

  • datasync:CancelTaskExecution

  • datasync:CreateLocation*

  • 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 DataSync agen

Untuk memulai, Anda harus membuat DataSync agen yang dapat membaca dari sistem penyimpanan lokal dan berkomunikasi dengannyaAWS. Proses ini mencakup penerapan agen di lingkungan penyimpanan lokal Anda dan mengaktifkan agen di sumber Anda. Akun AWS

catatan

Langkah-langkah dalam tutorial ini berlaku untuk semua jenis agen dan titik akhir layanan yang Anda gunakan.

Untuk membuat DataSync agen
  1. Menerapkan DataSync agen di lingkungan penyimpanan lokal Anda.

  2. Pilih titik akhir layanan yang akan digunakan agen untuk berkomunikasiAWS.

  3. Aktifkan agen Anda di akun sumber Anda.

Langkah 2: Di akun sumber Anda, buat lokasi DataSync sumber untuk penyimpanan lokal Anda

Di akun sumber, buat lokasi DataSync sumber untuk sistem penyimpanan lokal tempat Anda mentransfer data. Lokasi ini harus menggunakan agen yang baru saja Anda aktifkan di akun sumber Anda.

Langkah 3: 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 dengan 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 kustom 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 kustom ke peran IAM
  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 4: Di akun tujuan Anda, nonaktifkan ACL untuk bucket S3 Anda

Penting bahwa semua data yang Anda salin 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 5: 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 menyalin 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 6: Di akun sumber Anda, buat lokasi DataSync tujuan untuk bucket S3 Anda

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. 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" }
  9. Di panel navigasi kiri, perluas Transfer data, lalu pilih Lokasi.

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, Anda menggunakan dan mengaktifkan DataSync agen Anda. Agen dapat membaca dari sistem penyimpanan lokal Anda dan berkomunikasi dengannyaAWS.

  • 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. Pada halaman Konfigurasi lokasi sumber, pilih Pilih lokasi yang ada. Pilih lokasi sumber tempat Anda menyalin data (penyimpanan lokal) lalu Berikutnya.

  3. Pada halaman Konfigurasi lokasi tujuan, pilih Pilih lokasi yang ada. Pilih lokasi tujuan tempat Anda menyalin data (bucket S3 di akun tujuan Anda) lalu Berikutnya.

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

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

  6. 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.

Sumber daya terkait

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