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 kredensyal untuk mengakses data S3 yang diberi akses kepada mereka. Penerima hibah dapat berupa kepala sekolah AWS Identity and Access Management (IAM), identitas direktori perusahaan Anda, atau aplikasi resmi.

Aplikasi atau Layanan AWS dapat menggunakan operasi S3 Access Grants GetDataAccess API untuk meminta S3 Access Grants untuk akses 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 AssumeRoleAPI untuk mendapatkan token kredenal 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. targetRuang lingkup ini dapat sama dengan ruang lingkup hibah atau bagian dari ruang lingkup itu, tetapi target ruang lingkup harus 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 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://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 saat mencocokkan hibah yang sesuai. Untuk identitas direktori perusahaan, GetDataAccess juga mengembalikan hibah identitas IAM yang digunakan untuk sesi sadar identitas. Untuk informasi selengkapnya tentang sesi sadar identitas, lihat Memberikan izin untuk menggunakan sesi konsol sadar identitas di Panduan Pengguna.AWS Identity and Access Management GetDataAccessmenghasilkan kredensi yang membatasi ruang lingkup untuk hibah yang paling ketat, seperti yang ditunjukkan pada tabel berikut:

Ruang lingkup hibah untuk identitas IAM Ruang lingkup hibah 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 dibatasi pada awalan bob/images/ sebagai bagian dari hibah untuk identitas direktori. Baik peran IAM dan identitas direktori menyediakan akses ke ruang lingkup yang diminta, yaitubob/images/image1.jpeg, tetapi identitas direktori memiliki hibah yang lebih ketat. Jadi, ruang lingkup yang dikembalikan dibatasi 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 Privilege diatur keMinimal, meskipun identitas memiliki akses ke cakupan yang lebih besar, hanya lingkup yang diminta 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 dibatasi pada awalan bob/images/ sebagai bagian dari hibah untuk peran IAM. Baik peran IAM dan identitas direktori menyediakan akses ke ruang lingkup yang diminta, yaitubob/images/image1.jpeg, tetapi peran IAM memiliki hibah yang lebih ketat. Jadi, ruang lingkup yang dikembalikan dibatasi 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 Privilege diatur keMinimal, meskipun identitas memiliki akses ke cakupan yang lebih besar, hanya lingkup yang diminta 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 kredensil sementara dengan menggunakan AWS Command Line Interface (AWS CLI), Amazon S3 REST API, dan file. AWS SDKs Lihat contoh-contoh ini.

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

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 kredensil sementara dari S3 Access Grants, lihat GetDataAccessdi Referensi API Amazon Simple Storage Service.

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

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 ))