

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
<a name="access-grants-credentials"></a>

Setelah Anda [membuat hibah akses](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-grant.html) 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. `GetDataAccess`pertama memverifikasi bahwa Anda telah memberikan akses identitas ini ke data. Kemudian, S3 Access Grants menggunakan operasi [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API 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. `target`Ruang 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 adalah`Default`, 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 prefiks`bob/`, 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**  
`GetDataAccess`mempertimbangkan 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_sts-setcontext.html) di Panduan Pengguna.AWS Identity and Access Management * `GetDataAccess`menghasilkan 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, yaitu`bob/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 ke`Minimal`, meskipun identitas memiliki akses ke cakupan yang lebih besar, hanya lingkup yang diminta dikembalikan`bob/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, yaitu`bob/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 ke`Minimal`, meskipun identitas memiliki akses ke cakupan yang lebih besar, hanya lingkup yang diminta dikembalikan`bob/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 kredensyal 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 [GetDataAccess](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetDataAccess.html)di *Referensi API Amazon Simple Storage Service*.

## Menggunakan AWS CLI
<a name="access-grants-credentials-cli"></a>

Untuk menginstal AWS CLI, lihat [Menginstal AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) di *Panduan AWS Command Line Interface Pengguna*. 

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

**Example 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}}"
 }
}
```

## Penggunaan API REST
<a name="access-grants-credentials-rest-api"></a>

Untuk informasi tentang dukungan Amazon S3 REST API untuk meminta kredensyal sementara dari S3 Access Grants, lihat [GetDataAccess](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetDataAccess.html)di Referensi API *Amazon* Simple Storage Service.

## Menggunakan AWS SDKs
<a name="access-grants-credentials-using-sdk"></a>

Bagian ini memberikan contoh bagaimana penerima hibah meminta kredensyal 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.

**Example 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}}
))
```

------