

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

# Salin data dari bucket Amazon S3 ke akun dan Wilayah lain dengan menggunakan AWS CLI
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli"></a>

*Appasaheb Bagali dan Purushotham G K, Amazon Web Services*

## Ringkasan
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-summary"></a>

Pola ini menjelaskan cara memigrasikan data dari bucket Amazon Simple Storage Service (Amazon S3) sumber di akun ke bucket Amazon S3 tujuan di AWS AWS akun lain, baik di wilayah yang sama maupun di Wilayah yang berbeda. Wilayah AWS 

Bucket Amazon S3 sumber memungkinkan akses AWS Identity and Access Management (IAM) dengan menggunakan kebijakan sumber daya terlampir. Pengguna di akun tujuan harus mengambil peran yang memiliki `PutObject` dan `GetObject` izin untuk bucket sumber. Terakhir, Anda menjalankan `copy` dan `sync` memerintahkan untuk mentransfer data dari bucket Amazon S3 sumber ke bucket Amazon S3 tujuan.

Akun memiliki objek yang mereka unggah ke ember Amazon S3. Jika Anda menyalin objek di seluruh akun dan Wilayah, Anda memberikan kepemilikan akun tujuan atas objek yang disalin. Anda dapat mengubah kepemilikan objek dengan mengubah [daftar kontrol akses (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html) menjadi`bucket-owner-full-control`. Namun, kami menyarankan Anda memberikan izin lintas akun terprogram ke akun tujuan karena mungkin ACLs sulit dikelola untuk beberapa objek.

**Awas**  
Skenario ini mengharuskan pengguna IAM dengan akses terprogram dan kredensil jangka panjang, yang menghadirkan risiko keamanan. Untuk membantu mengurangi risiko ini, kami menyarankan agar Anda memberikan pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. Kunci akses dapat diperbarui jika perlu. Untuk informasi selengkapnya, lihat [Memperbarui kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) dalam dokumentasi IAM.

## Prasyarat dan batasan
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-prereqs"></a>

*Prasyarat*
+ Dua aktif Akun AWS dalam hal yang sama atau berbeda Wilayah AWS.
+ Bucket Amazon S3 yang ada di akun sumber. 
+ Jika bucket Amazon S3 sumber atau tujuan Anda mengaktifkan [enkripsi default](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html), Anda harus mengubah izin kunci AWS Key Management Service (AWS KMS). Untuk informasi lebih lanjut, lihat [artikel AWS re:Post](https://repost.aws/knowledge-center/s3-bucket-access-default-encryption) tentang topik ini. 
+ Keakraban dengan izin lintas akun.

*Batasan*
+ Pola ini mencakup migrasi satu kali. Untuk skenario yang memerlukan migrasi objek baru secara terus menerus dan otomatis dari bucket sumber ke bucket tujuan, Anda dapat menggunakan Replikasi [Batch Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html).
+ Pola ini menggunakan kredenal sesi (`AccessKeyId`,`SecretAccessKey`, dan`SessionToken`) yang bersifat sementara dan tidak persisten. Stempel waktu kedaluwarsa dalam output menunjukkan kapan kredensil ini kedaluwarsa. Peran dikonfigurasi dengan durasi sesi maksimum. Pekerjaan penyalinan akan dibatalkan jika sesi berakhir.

## Arsitektur
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-architecture"></a>

 

![Menyalin data Amazon S3 ke akun atau Wilayah lain](https://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/a574c26b-fdd9-4472-842b-b34c3eb2bfe9/images/5e4dec53-dfc8-478b-a7c4-503d63c8ac4e.png)


## Alat
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) adalah alat sumber terbuka yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

## Praktik terbaik
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-best-practices"></a>
+ [Praktik terbaik keamanan dalam IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (dokumentasi IAM)
+ [Menerapkan izin hak istimewa paling sedikit (dokumentasi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege))

## Epik
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-epics"></a>

### Buat pengguna IAM dan peran di tujuan Akun AWS
<a name="create-an-iam-user-and-role-in-the-destination-aws-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat pengguna IAM dan dapatkan kunci akses. | 1. Masuk ke Konsol Manajemen AWS dan buat pengguna IAM yang memiliki akses terprogram. Untuk petunjuk terperinci, lihat [Membuat pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) dalam dokumentasi IAM. Tidak perlu melampirkan kebijakan apa pun untuk pengguna ini. <br />2. Hasilkan kunci akses dan kunci rahasia untuk pengguna ini. Untuk petunjuk, lihat [Akun AWS dan akses kunci](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-appendix-sign-up.html) dalam AWS dokumentasi. | AWS DevOps | 
| Buat kebijakan berbasis identitas IAM. | Buat kebijakan berbasis identitas IAM yang diberi nama menggunakan izin `S3MigrationPolicy` berikut. Ubah nama bucket sumber dan tujuan sesuai dengan kasus penggunaan Anda. Kebijakan berbasis identitas ini memungkinkan pengguna yang mengambil peran ini untuk mengakses bucket sumber dan bucket tujuan. Untuk petunjuk terperinci, lihat [Membuat kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) dalam dokumentasi IAM. <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:ListObjectsV2",<br />                "s3:GetObject",<br />                "s3:GetObjectTagging",<br />                "s3:GetObjectVersion",<br />                "s3:GetObjectVersionTagging"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::amazon-s3-demo-source-bucket",<br />                "arn:aws:s3:::amazon-s3-demo-source-bucket/*"<br />            ]<br />        },<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:PutObject",<br />                "s3:PutObjectAcl",<br />                "s3:PutObjectTagging",<br />                "s3:GetObjectTagging",<br />                "s3:ListObjectsV2",<br />                "s3:GetObjectVersion",<br />                "s3:GetObjectVersionTagging"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::amazon-s3-demo-destination-bucket",<br />                "arn:aws:s3:::amazon-s3-demo-destination-bucket/*"<br />            ]<br />        }<br />    ]<br />}</pre> | AWS DevOps | 
| Buat peran IAM. | Buat peran IAM bernama `S3MigrationRole` dengan menggunakan kebijakan kepercayaan berikut. Ubah Nama Sumber Daya Amazon (ARN) peran IAM tujuan atau nama pengguna dalam kebijakan kepercayaan sesuai dengan kasus penggunaan Anda. Kebijakan kepercayaan ini memungkinkan pengguna IAM yang baru dibuat untuk berasumsi`S3MigrationRole`. Lampirkan yang dibuat sebelumnya`S3MigrationPolicy`. Untuk langkah-langkah mendetail, lihat [Membuat peran untuk mendelegasikan izin ke pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) dalam dokumentasi IAM.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "AWS": "arn:aws:iam::<destination_account>:user/<user_name>"<br />            },<br />            "Action": "sts:AssumeRole",<br />            "Condition": {}<br />        }<br />    ]<br />}</pre> | AWS DevOps | 

### Buat dan lampirkan kebijakan bucket Amazon S3 di akun sumber
<a name="create-and-attach-the-s3-bucket-policy-in-the-source-account"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat dan lampirkan kebijakan bucket Amazon S3. | 1. Masuk ke akun sumber Anda dan buka konsol Amazon S3. Konsol Manajemen AWS <br />2. **Pilih bucket Amazon S3 sumber Anda, lalu pilih Izin.** <br />3. Di Bawah **Kebijakan bucket**, pilih **Edit**. <br />4. Tempelkan kebijakan bucket berikut. Pastikan Anda menyertakan Akun AWS ID untuk akun tujuan dan mengonfigurasi templat kebijakan bucket sesuai dengan kebutuhan Anda. Kebijakan berbasis sumber daya ini memungkinkan peran tujuan mengakses objek `S3MigrationRole` Amazon S3 di akun sumber.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "DelegateS3Access",<br />            "Effect": "Allow",<br />            "Principal": {"AWS": "arn:aws:iam::<destination_account>:role/<RoleName>"},<br />            "Action": ["s3:ListBucket",<br />                       "s3:GetObject",<br />                       "s3:ListObjectsV2",<br />                       "s3:GetObjectTagging",<br />                       "s3:GetObjectVersion",<br />                       "s3:GetObjectVersionTagging"<br />                       ],<br />            "Resource": [<br />                "arn:aws:s3:::amazon-s3-demo-source-bucket/*",<br />                "arn:aws:s3:::amazon-s3-demo-source-bucket"<br />            ]<br />        }<br />    ]<br />}</pre><br />5. Pilih **Simpan**. | Administrator awan | 

### Konfigurasikan bucket Amazon S3 tujuan
<a name="configure-the-destination-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat bucket Amazon S3 tujuan. | 1. Masuk ke akun Konsol Manajemen AWS untuk tujuan Anda, dan buka konsol Amazon S3.<br />2. Pilih **Buat bucket**. <br />3. Buat bucket Amazon S3 sesuai dengan kebutuhan Anda. Untuk informasi selengkapnya, lihat [Membuat bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) di dokumentasi Amazon S3.  | Administrator awan | 

### Salin data ke bucket Amazon S3 tujuan
<a name="copy-data-to-the-destination-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Konfigurasikan AWS CLI dengan kredensil pengguna yang baru dibuat. | 1. Instal rilis terbaru dari file AWS CLI. Untuk petunjuk, lihat [Menginstal atau memperbarui versi terbaru AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dari AWS CLI dokumentasi.<br />2. Jalankan `$ aws configure` dan perbarui AWS CLI dengan kunci AWS akses pengguna IAM yang Anda buat. Untuk informasi selengkapnya, lihat [Pengaturan konfigurasi dan file kredensi](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) dalam AWS CLI dokumentasi. | AWS DevOps | 
| Asumsikan peran migrasi Amazon S3. | 1. Gunakan AWS CLI untuk mengasumsikan`S3MigrationRole`:<pre> aws sts assume-role \<br />    --role-arn "arn:aws:iam::<destination_account>:role/S3MigrationRole" \<br />    --role-session-name AWSCLI-Session</pre>Perintah ini mengeluarkan beberapa informasi. Di dalam blok kredensil Anda membutuhkan`AccessKeyId`,`SecretAccessKey`, dan. `SessionToken` Contoh ini menggunakan variabel lingkungan`RoleAccessKeyID`,`RoleSecretKey`, dan`RoleSessionToken`. : Kredensi sesi (`AccessKeyId`,`SecretAccessKey`, dan`SessionToken`) bersifat sementara dan tidak persisten. Stempel waktu kedaluwarsa dalam output menunjukkan kapan kredensil ini kedaluwarsa. Peran dikonfigurasi dengan durasi sesi maksimum. Jika kredensil kedaluwarsa, Anda harus menelepon `sts:AssumeRole` lagi untuk mendapatkan kredensil sementara yang baru.<br />2. Buat tiga variabel lingkungan untuk mengasumsikan peran IAM. Variabel lingkungan ini dilengkapi dengan output sebagai berikut:<pre># Linux<br />export AWS_ACCESS_KEY_ID=<RoleAccessKeyID from command output><br />export AWS_SECRET_ACCESS_KEY=<RoleSecretKey from command output><br />export AWS_SESSION_TOKEN=<RoleSessionToken from command output><br /># Windows<br />set AWS_ACCESS_KEY_ID=<RoleAccessKeyID from command output><br />set AWS_SECRET_ACCESS_KEY=<RoleSecretKey from command output><br />set AWS_SESSION_TOKEN=<RoleSessionToken from command output></pre><br />3. Verifikasi bahwa Anda mengambil peran IAM dengan menjalankan perintah berikut:<pre>aws sts get-caller-identity</pre>Untuk informasi selengkapnya, lihat [Bagaimana cara menggunakan AWS CLI untuk mengambil peran IAM?](https://repost.aws/knowledge-center/iam-assume-role-cli) | Administrator AWS | 
| Menyalin dan menyinkronkan data dari bucket sumber ke bucket tujuan. | Ketika Anda telah mengambil peran, `S3MigrationRole` Anda dapat menyalin data menggunakan perintah [copy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) (`cp`) atau [synchronize](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/sync.html) (`sync`).<br />Salin:<pre>aws s3 cp s3://amazon-s3-demo-source-bucket/ \<br />    s3://amazon-s3-demo-destination-bucket/ \<br />    --recursive --source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME</pre><br />Sinkronisasi:<pre>aws s3 sync s3://amazon-s3-demo-source-bucket/ \<br />    s3://amazon-s3-demo-destination-bucket/ \<br />    --source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME</pre> | Administrator awan | 

## Pemecahan masalah
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Terjadi kesalahan (`AccessDenied`) saat memanggil `ListObjects` operasi | 1. Pastikan Anda telah mengambil peran tersebut`S3MigrationRole`.<br />2. Jalankan `aws sts get-caller-identity` untuk memeriksa peran yang digunakan. Jika output tidak menampilkan ARN untuk`S3MigrationRole`, asumsikan peran IAM lagi dan coba lagi. | 

## Sumber daya terkait
<a name="copy-data-from-an-s3-bucket-to-another-account-and-region-by-using-the-aws-cli-resources"></a>
+ [Membuat bucket Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) (dokumentasi Amazon S3)
+ [Kebijakan bucket Amazon S3 dan kebijakan pengguna (dokumentasi](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html) Amazon S3)
+ [Identitas IAM (pengguna, grup, dan peran) (dokumentasi](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html?icmpid=docs_iam_console) IAM)
+ [perintah cp](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html) (AWS CLI dokumentasi)
+ [perintah sinkronisasi](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/sync.html) (AWS CLI dokumentasi)