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 menggunakan Hibah Akses Amazon S3 untuk membuat hibah akses yang memberikan kepala sekolah AWS Identity and Access Management (IAM), identitas direktori perusahaan Anda, atau akses aplikasi resmi ke data S3 Anda, penerima hibah Anda dapat meminta kredensyal untuk mengakses data ini.

Saat aplikasi atau Layanan AWS menggunakan operasi GetDataAccess API untuk meminta S3 Access Grants untuk mengakses data S3 Anda atas nama penerima hibah, S3 Access Grants terlebih dahulu memverifikasi bahwa Anda telah memberikan akses identitas ini ke data. Kemudian, S3 Access Grants menggunakan operasi AssumeRoleAPI untuk mendapatkan token kredensyal sementara dan menjualnya ke 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 lingkup target ini dapat sama dengan ruang lingkup pemberian atau bagian dari ruang lingkup itu, tetapi ruang lingkup target harus dalam ruang lingkup pemberian yang diberikan kepada pemohon. Permintaan juga harus menentukan permission parameter untuk menunjukkan tingkat izin untuk kredensial sementara, apakah READ, WRITE, atau READWRITE.

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 kredensi 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://DOC-EXAMPLE-BUCKET1/bob/*, yang mencakup seluruh bob/ prefiks dalam bucket DOC-EXAMPLE-BUCKET1. Hibah lainnya memiliki ruang lingkup S3://DOC-EXAMPLE-BUCKET1/bob/reports/*, yang hanya mencakup bob/reports/ prefiks di dalam bucket DOC-EXAMPLE-BUCKET1.

Lingkup pemberian Lingkup yang diminta Keistimewaan Lingkup yang dikembalikan Efek
S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/* Default DOC-EXAMPLE-BUCKET1/bob/*

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan prefiks bob/ di dalam bucket DOC-EXAMPLE-BUCKET1.

S3://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/ Minimal DOC-EXAMPLE-BUCKET1/bob/

Tanpa karakter wild card* setelah nama prefiksbob/, pemohon hanya memiliki akses ke objek yang disebutkan bob/ dalam bucket DOC-EXAMPLE-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://DOC-EXAMPLE-BUCKET1/bob/* DOC-EXAMPLE-BUCKET1/bob/images/* Minimal DOC-EXAMPLE-BUCKET1/bob/images/*

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan prefiks bob/images/* di dalam bucket DOC-EXAMPLE-BUCKET1.

S3://DOC-EXAMPLE-BUCKET1/bob/reports/* DOC-EXAMPLE-BUCKET1/bob/reports/file.txt Default DOC-EXAMPLE-BUCKET1/bob/reports/*

Pemohon memiliki akses ke semua objek yang memiliki nama kunci yang dimulai dengan prefiks bob/reports di dalam bucket DOC-EXAMPLE-BUCKET1, yang merupakan cakupan pemberian yang cocok.

S3://DOC-EXAMPLE-BUCKET1/bob/reports/* DOC-EXAMPLE-BUCKET1/bob/reports/file.txt Minimal DOC-EXAMPLE-BUCKET1/bob/reports/file.txt

Pemohon hanya memiliki akses ke objek dengan nama kunci bob/reports/file.txt di dalam bucket DOC-EXAMPLE-BUCKET1. Pemohon tidak memiliki akses ke objek lain.

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.

Untuk informasi selengkapnya, lihat GetDataAccessdi Referensi API Amazon Simple Storage Service.

Anda dapat meminta kredensyal sementara dengan menggunakan AWS Command Line Interface (AWS CLI), Amazon S3 REST API, dan SDK. AWS

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://DOC-EXAMPLE-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://DOC-EXAMPLE-BUCKET/prefixA**" }

Untuk informasi tentang dukungan Amazon S3 REST API untuk meminta kredensyal sementara dari S3 Access Grants, lihat GetDataAccessdi Referensi API Amazon Simple Storage Service.

Bagian ini memberikan contoh bagaimana penerima hibah meminta kredensyal 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://DOC-EXAMPLE-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 ))