View a markdown version of this page

Minta akses ke data Amazon S3 melalui S3 Access Grants - Amazon Simple Storage Service

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

Minta akses ke data Amazon S3 melalui S3 Access Grants

Setelah Anda membuat hibah akses menggunakan S3 Access Grants, penerima hibah dapat meminta kredenSIAL untuk mengakses data S3 yang mereka berikan akses. Penerima hibah dapat berupa kepala AWS Identity and Access Management sekolah (IAM), identitas direktori perusahaan Anda, atau aplikasi resmi.

Aplikasi atau Layanan AWS dapat menggunakan operasi GetDataAccess API S3 Access Grants untuk meminta akses S3 Access Grants ke data S3 Anda atas nama penerima hibah. GetDataAccesspertama memverifikasi bahwa Anda telah memberikan akses identitas ini ke data. Kemudian, S3 Access Grants menggunakan operasi AssumeRole API untuk mendapatkan token kredensia sementara dan menjualnya kepada pemohon. Token kredensial sementara ini adalah token AWS Security Token Service (AWS STS).

Permintaan GetDataAccess harus menyertakan parameter target, yang menentukan ruang lingkup data S3 yang berlaku untuk kredensial sementara. Ruang target lingkup ini bisa sama dengan ruang lingkup hibah atau bagian dari ruang lingkup itu, tetapi ruang target lingkup harus berada dalam ruang lingkup hibah yang diberikan kepada penerima hibah. Permintaan juga harus menentukan permission parameter untuk menunjukkan tingkat izin untuk kredensial sementara, apakah READ, WRITE, atau READWRITE.

Keistimewaan

Pemohon dapat menentukan tingkat hak istimewa token sementara dalam permintaan kredensialnya. Dengan menggunakan parameter privilege, pemohon dapat mengurangi atau meningkatkan ruang lingkup akses kredensial sementara, dalam batas-batas ruang lingkup pemberian. Nilai default privilege parameter adalahDefault, yang berarti bahwa cakupan target dari kredenSIAL yang dikembalikan adalah cakupan hibah asli. Nilai lain yang mungkin untuk privilege adalah Minimal. Jika ruang lingkup target dikurangi dari ruang lingkup pemberian asli, maka kredensial sementara dihilangkan cakupannya agar sesuai dengan ruang lingkup target, selama ruang lingkup berada dalam ruang lingkup target pemberian.

Tabel berikut merinci efek parameter privilege pada dua pemberian. Satu pemberian memiliki ruang lingkup S3://amzn-s3-demo-bucket1/bob/*, yang mencakup seluruh bob/ prefiks dalam bucket amzn-s3-demo-bucket1. Hibah lainnya memiliki ruang lingkup S3://amzn-s3-demo-bucket1/bob/reports/*, yang hanya mencakup bob/reports/ prefiks di dalam bucket amzn-s3-demo-bucket1.

Lingkup pemberian Lingkup yang diminta Keistimewaan Lingkup yang dikembalikan Efek
S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/* Default amzn-s3-demo-bucket1/bob/*

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan prefiks bob/ di dalam bucket amzn-s3-demo-bucket1.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/ Minimal amzn-s3-demo-bucket1/bob/

Tanpa karakter wild card* setelah nama prefiksbob/, pemohon hanya memiliki akses ke objek yang disebutkan bob/ dalam bucket amzn-s3-demo-bucket1. Tidak umum memiliki objek seperti itu. Pemohon tidak memiliki akses ke objek lain, termasuk yang memiliki nama kunci yang dimulai dengan prefiks bob/.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* Minimal amzn-s3-demo-bucket1/bob/images/*

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan prefiks bob/images/* di dalam bucket amzn-s3-demo-bucket1.

S3://amzn-s3-demo-bucket1/bob/reports/* amzn-s3-demo-bucket1/bob/reports/file.txt Default amzn-s3-demo-bucket1/bob/reports/*

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan prefiks bob/reports di dalam bucket amzn-s3-demo-bucket1, yang merupakan cakupan pemberian yang cocok.

S3://amzn-s3-demo-bucket1/bob/reports/* amzn-s3-demo-bucket1/bob/reports/file.txt Minimal amzn-s3-demo-bucket1/bob/reports/file.txt

Pemohon hanya memiliki akses ke objek dengan nama kunci bob/reports/file.txt di dalam bucket amzn-s3-demo-bucket1. Pemohon tidak memiliki akses ke objek lain.

Identitas direktori

GetDataAccessmempertimbangkan semua identitas yang terlibat dalam permintaan ketika mencocokkan hibah yang sesuai. Untuk identitas direktori perusahaan, GetDataAccess juga mengembalikan pemberian identitas IAM yang digunakan untuk sesi sadar identitas. Untuk informasi selengkapnya tentang sesi sadar identitas, lihat Mem berikan izin untuk menggunakan sesi konsol sadar identitas di Panduan Pengguna. AWS Identity and Access Management GetDataAccessmenghasilkan kredenSIAL yang membatasi ruang lingkup ke hibah yang paling ketat, seperti yang ditunjukkan pada tabel berikut:

Ruang lingkup hibah untuk identitas IAM Berikan ruang lingkup untuk identitas direktori Lingkup yang diminta Lingkup yang dikembalikan Keistimewaan Efek
S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/* Default

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan awalan bob/ sebagai bagian dari hibah untuk peran IAM tetapi terbatas pada awalan bob/images/sebagai bagian dari hibah untuk identitas direktori. Baik peran IAM dan identitas direktori menyediakan akses ke cakupan yang diminta, yaitubob/images/image1.jpeg, tetapi identitas direktori memiliki hibah yang lebih ketat. Jadi, cakupan yang dikembalikan terbatas pada hibah yang lebih ketat untuk identitas direktori.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg Minimal

Karena Hak istimewa disetel keMinimal, meskipun identitas memiliki akses ke cakupan yang lebih besar, hanya cakupan yang diminta yang dikembalikanbob/images/image1.jpeg.

S3://amzn-s3-demo-bucket1/bob/images/* amzn-s3-demo-bucket1/bob/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/* Default

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan awalan bob/ sebagai bagian dari hibah untuk identitas direktori tetapi terbatas pada awalan bob/images/sebagai bagian dari hibah untuk peran IAM. Peran IAM dan identitas direktori menyediakan akses ke cakupan yang diminta, yaitubob/images/image1.jpeg, tetapi peran IAM memiliki hibah yang lebih ketat. Jadi, ruang lingkup yang dikembalikan terbatas pada hibah yang lebih ketat untuk peran IAM.

S3://amzn-s3-demo-bucket1/bob/images/* amzn-s3-demo-bucket1/bob/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg Minimal

Karena Hak istimewa disetel keMinimal, meskipun identitas memiliki akses ke cakupan yang lebih besar, hanya cakupan yang diminta yang dikembalikanbob/images/image1.jpeg.

Durasi

Parameter durationSeconds menetapkan durasi kredensial sementara, dalam hitungan detik. Nilai default adalah 3600 detik (1 jam), tetapi pemohon (penerima pemberian) dapat menentukan rentang dari 900 detik (15 menit) hingga 43200 detik (12 jam). Jika penerima pemberian meminta nilai yang lebih tinggi dari maksimum ini, permintaan gagal.

catatan

Dalam permintaan Anda untuk token sementara, jika lokasi adalah objek, tetapkan nilai parameter targetType dalam permintaan Object Anda. Parameter ini diperlukan hanya jika lokasi adalah objek dan tingkat hak istimewa adalah Minimal. Jika lokasi adalah bucket atau prefiks, Anda tidak perlu menentukan parameter ini.

Contoh

Anda dapat meminta kredentif sementara dengan menggunakan AWS Command Line Interface (AWS CLI), API REST Amazon S3, dan AWS SDK. Lihat contoh-contoh ini.

Untuk informasi tambahan, lihat Refer GetDataAccess ensi API Layanan Penyimpanan Sederhana Amazon.

Untuk menginstal AWS CLI, lihat Menginstal AWS CLI di Panduan AWS Command Line Interface Pengguna.

Untuk menggunakan perintah contoh berikut, ganti user input placeholders dengan informasi Anda sendiri.

contoh Meminta kredensial sementara

Permintaan:

aws s3control get-data-access \ --account-id 111122223333 \ --target s3://amzn-s3-demo-bucket/prefixA* \ --permission READ \ --privilege Default \ --region us-east-2

Respons:

{ "Credentials": { "AccessKeyId": "Example-key-id", "SecretAccessKey": "Example-access-key", "SessionToken": "Example-session-token", "Expiration": "2023-06-14T18:56:45+00:00"}, "MatchedGrantTarget": "s3://amzn-s3-demo-bucket/prefixA**", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::111122223333:role/role-name" } }

Untuk informasi tentang dukungan Amazon S3 REST API untuk meminta kredenSIAL sementara dari S3 Access Grants, lihat GetDataAccess di Referensi API Layanan Penyimpanan Sederhana Amazon.

Bagian ini memberikan contoh bagaimana penerima hibah meminta kredentif sementara dari S3 Access Grants dengan menggunakan SDK. AWS

Java

Contoh kode berikut mengembalikan kredensial sementara yang digunakan penerima pemberian untuk mengakses data S3 Anda. Untuk menggunakan contoh kode ini, ganti user input placeholders dengan informasi Anda sendiri.

contoh Dapatkan kredensial sementara

Permintaan:

public void getDataAccess() { GetDataAccessRequest getDataAccessRequest = GetDataAccessRequest.builder() .accountId("111122223333") .permission(Permission.READ) .privilege(Privilege.MINIMAL) .target("s3://amzn-s3-demo-bucket/prefixA*") .build(); GetDataAccessResponse getDataAccessResponse = s3Control.getDataAccess(getDataAccessRequest); LOGGER.info("GetDataAccessResponse: " + getDataAccessResponse); }

Respons:

GetDataAccessResponse( Credentials=Credentials( AccessKeyId="Example-access-key-id", SecretAccessKey="Example-secret-access-key", SessionToken="Example-session-token", Expiration=2023-06-07T06:55:24Z ))