Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mendaftarkan lokasi
Setelah membuat instans Amazon S3 Access Grants Wilayah AWS di akun Anda, Anda mendaftarkan lokasi S3 dalam instance tersebut. Lokasi S3 Access Grants memetakan lokasi default S3 (s3://
), bucket, atau awalan ke peran AWS Identity and Access Management (IAM). S3 Access Grants mengasumsikan peran IAM ini untuk menjual kredensil sementara kepada penerima hibah yang mengakses lokasi tertentu. Anda harus terlebih dahulu mendaftarkan setidaknya satu lokasi di instans S3 Access Grants sebelum Anda dapat membuat hibah akses.
Kasus penggunaan yang disarankan
Kami menyarankan Anda mendaftarkan lokasi default (s3://
) dan memetakannya ke peran IAM. Lokasi di jalur S3 default (s3://
) mencakup akses ke semua bucket S3 Anda di akun Anda Wilayah AWS . Saat membuat hibah akses, Anda dapat mempersempit cakupan hibah menjadi bucket, awalan, atau objek di dalam lokasi default.
Kasus penggunaan manajemen akses yang kompleks
Kasus penggunaan manajemen akses yang lebih kompleks mungkin mengharuskan Anda untuk mendaftar lebih dari lokasi default. Beberapa contoh kasus penggunaan tersebut adalah:
-
Misalkan lokasi terdaftar di instance S3 Access Grants Anda dengan peran IAM yang dipetakan ke sana, tetapi peran IAM ini ditolak akses ke awalan tertentu di dalam bucket.
amzn-s3-demo-bucket
Dalam hal ini, Anda dapat mendaftarkan awalan yang tidak dapat diakses oleh peran IAM sebagai lokasi terpisah dan memetakan lokasi tersebut ke peran IAM yang berbeda dengan akses yang diperlukan. -
Misalkan Anda ingin membuat hibah yang membatasi akses hanya ke pengguna dalam titik akhir virtual private cloud (VPC). Dalam hal ini, Anda dapat mendaftarkan lokasi untuk bucket di mana peran IAM membatasi akses ke titik akhir VPC. Kemudian, ketika penerima hibah meminta kredensil S3 Access Grants, S3 Access Grants mengasumsikan peran IAM lokasi untuk menjual kredensil sementara. Kredensi ini akan menolak akses ke bucket tertentu kecuali penelepon berada dalam titik akhir VPC. Izin penolakan ini diterapkan selain izin BACA, TULIS, atau READWRITE reguler yang ditentukan dalam hibah.
Saat mendaftarkan lokasi, Anda juga harus menentukan peran IAM yang diasumsikan oleh S3 Access Grants untuk menjual kredensi sementara dan untuk mencakup izin untuk hibah tertentu.
Jika kasus penggunaan Anda mengharuskan Anda mendaftarkan beberapa lokasi di instans S3 Access Grants, Anda dapat mendaftarkan salah satu dari berikut ini:
URI S3 | Peran IAM | Deskripsi |
---|---|---|
s3:// |
|
Lokasi default, |
s3:// |
|
Lokasi ini mencakup semua objek dalam bucket yang ditentukan. |
s3:// |
|
Lokasi ini mencakup semua objek dalam bucket dengan nama kunci objek yang dimulai dengan awalan ini. |
Sebelum Anda dapat mendaftarkan bucket atau awalan tertentu, pastikan Anda melakukan hal berikut:
-
Buat satu atau beberapa bucket yang berisi data yang ingin Anda berikan akses. Bucket ini harus ditempatkan Wilayah AWS sama dengan instance S3 Access Grants Anda. Untuk informasi selengkapnya, lihat Membuat bucket.
Menambahkan awalan adalah langkah opsional. Awalan adalah string di awal nama kunci objek. Anda dapat menggunakannya untuk mengatur objek di bucket Anda serta untuk manajemen akses. Untuk menambahkan prefiks ke bucket, lihat Membuat nama kunci objek.
-
Buat peran IAM yang memiliki izin untuk mengakses data S3 Anda di file. Wilayah AWS Untuk informasi selengkapnya, lihat Membuat peran IAM di panduan AWS IAM Identity Center pengguna.
Dalam kebijakan kepercayaan peran IAM, berikan akses utama layanan S3 Access Grants (
access-grants.s3.amazonaws.com
) ke peran IAM yang Anda buat. Untuk melakukannya, Anda dapat membuat file JSON yang berisi pernyataan berikut ini. Untuk menambahkan kebijakan kepercayaan ke akun Anda, lihat Membuat peran menggunakan kebijakan kepercayaan khusus.TestRolePolicy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Effect": "Allow", "Principal": { "Service":"access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringEquals": { "aws:SourceAccount":"
accountId
", "aws:SourceArn":"arn:aws:s3:region
:accountId
:access-grants/default" } } }, //Optionally, for an IAM Identity Center use case, add: { "Sid": "Stmt1234567891012", "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": "sts:SetContext", "Condition":{ "StringEquals":{ "aws:SourceAccount":"accountId
", "aws:SourceArn":"arn:aws:s3:region
:accountId
:access-grants/default" }, "ForAllValues:ArnEquals": { "sts:RequestContextProviders":"arn:aws:iam::aws:contextProvider/IdentityCenter" } } } ] }-
Buat kebijakan IAM untuk melampirkan izin Amazon S3 ke peran IAM yang Anda buat. Lihat file contoh
iam-policy.json
berikut ini, dan ganti
dengan informasi Anda sendiri.user input placeholders
catatan
-
Jika Anda menggunakan enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) untuk mengenkripsi data Anda, contoh berikut menyertakan AWS KMS izin yang diperlukan untuk peran IAM dalam kebijakan. Jika Anda tidak menggunakan fitur ini, Anda dapat menghapus izin ini dari kebijakan IAM Anda.
-
Anda dapat membatasi peran IAM untuk mengakses data S3 hanya jika kredensialnya dijual oleh S3 Access Grants. Contoh ini menunjukkan cara menambahkan
Condition
pernyataan untuk instance S3 Access Grants tertentu. Untuk menggunakan iniCondition
, ganti ARN instance S3 Access Grants dalamCondition
pernyataan dengan ARN instance S3 Access Grants Anda, yang memiliki format:arn:aws:s3:
region
:accountId
:access-grants/default
iam-policy.json
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "
accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:region
:accountId
:access-grants/default"] } } }, { "Sid": "ObjectLevelWritePermissions", "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Wilayah AWS
:accountId
:access-grants/default"] } } }, { "Sid": "BucketLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Wilayah AWS
:accountId
:access-grants/default"] } } }, //Optionally add the following section if you use SSE-KMS encryption { "Sid": "KMSPermissions", "Effect":"Allow", "Action":[ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource":[ "*" ] } ] } -
Anda dapat mendaftarkan lokasi di instans S3 Access Grants dengan menggunakan konsol Amazon S3,AWS CLI(), AWS Command Line Interface Amazon S3 REST API, atau. AWS SDKs
catatan
Setelah Anda mendaftarkan lokasi pertama di instans S3 Access Grants, instans Anda masih tidak memiliki hibah akses individual di dalamnya. Untuk membuat hibah akses, lihatMembuat pemberian.
Sebelum Anda dapat memberikan akses ke data S3 Anda dengan S3 Access Grants, Anda harus memiliki setidaknya satu lokasi terdaftar.
Untuk mendaftarkan lokasi di instans S3 Access Grants
Masuk ke AWS Management Console dan buka konsol Amazon S3 di. https://console.aws.amazon.com/s3/
-
Pada panel navigasi di sebelah kiri, pilih Access Grants.
-
Pada halaman S3 Access Grants, pilih Region yang berisi instance S3 Access Grants yang ingin Anda gunakan.
Jika Anda menggunakan instans S3 Access Grants untuk pertama kalinya, pastikan Anda telah menyelesaikan Langkah 1-buat instans S3 Access Grants dan navigasikan ke Langkah 2 dari wizard instans Set up Access Grants. Jika Anda sudah memiliki instans S3 Access Grants, pilih Lihat detail, lalu dari tab Lokasi, pilih Daftar lokasi.
-
Untuk lingkup Lokasi, pilih Jelajahi S3 atau masukkan jalur URI S3 ke lokasi yang ingin Anda daftarkan. Untuk format URI S3, lihat tabel format lokasi. Setelah memasukkan URI, Anda dapat memilih Lihat untuk menelusuri lokasi.
-
Untuk Peran IAM, pilih salah satu hal berikut ini:
-
Pilih dari peran IAM yang ada
Pilih peran IAM dari daftar dropdown. Setelah Anda memilih peran, pilih Lihat untuk memastikan bahwa peran ini memiliki izin yang diperlukan untuk mengelola lokasi yang Anda daftarkan. Secara kustom, pastikan bahwa peran ini memberikan S3 Access memberikan izin
sts:AssumeRole
dansts:SetSourceIdentity
. -
Masukkan ARN peran IAM
Arahkan ke Konsol IAM
. Salin Nama Sumber Daya Amazon (ARN) dari peran IAM dan tempel di kotak ini.
-
-
Untuk menyelesaikan, pilih Berikutnya atau Daftar lokasi.
-
-
Pemecahan Masalah:
Tidak dapat mendaftarkan lokasi
-
Lokasi mungkin sudah terdaftar.
Anda mungkin tidak memiliki
s3:CreateAccessGrantsLocation
izin untuk mendaftarkan lokasi. Menghubungi administrator akun Anda.
-
Untuk menginstal AWS CLI, lihat Menginstal AWS CLI di Panduan AWS Command Line Interface Pengguna.
Anda dapat mendaftarkan lokasi default, s3://
, atau lokasi kustom di instans S3 Access Grants Anda. Pastikan Anda terlebih dahulu membuat peran IAM dengan akses pengguna utama ke lokasi, lalu pastikan Anda memberikan izin S3 Access Grants untuk mengambil peran ini.
Untuk menggunakan perintah contoh berikut, ganti
dengan informasi Anda sendiri.user input
placeholders
contoh Buat kebijakan sumber daya
Buat kebijakan yang memungkinkan S3 Access Grants untuk mengambil peran IAM. Untuk melakukannya, Anda dapat membuat file JSON yang berisi pernyataan berikut ini. Untuk menambahkan kebijakan sumber daya ke akun Anda, lihat Membuat dan melampirkan kebijakan yang dikelola pelanggan pertama Anda.
TestRolePolicy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Action": ["sts:AssumeRole", "sts:SetSourceIdentity"], "Effect": "Allow", "Principal": {"Service":"access-grants.s3.amazonaws.com"} } ] }
contoh Buat peran
Jalankan perintah IAM berikut untuk membuat peran.
aws iam create-role --role-name
accessGrantsTestRole
\ --regionus-east-2
\ --assume-role-policy-document file://TestRolePolicy.json
Menjalankan create-role
perintah mengembalikan kebijakan:
{ "Role": { "Path": "/", "RoleName": "accessGrantsTestRole", "RoleId": "AROASRDGX4WM4GH55GIDA", "Arn": "arn:aws:iam::
111122223333
:role/accessGrantsTestRole", "CreateDate": "2023-05-31T18:11:06+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1685556427189", "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Effect": "Allow", "Principal": { "Service":"access-grants.s3.amazonaws.com" } } ] } } }
Buat kebijakan IAM untuk melampirkan izin Amazon S3 ke peran IAM. Lihat file contoh iam-policy.json
berikut ini, dan ganti
dengan informasi Anda sendiri. user input placeholders
catatan
Jika Anda menggunakan enkripsi sisi server dengan kunci AWS Key Management Service (AWS KMS) untuk mengenkripsi data, contoh berikut akan menambahkan AWS KMS izin yang diperlukan untuk peran IAM dalam kebijakan. Jika Anda tidak menggunakan fitur ini, Anda dapat menghapus izin ini dari kebijakan IAM Anda.
Untuk memastikan bahwa peran IAM hanya dapat digunakan untuk mengakses data di S3 jika kredensialnya dijual oleh S3 Access Grants, contoh ini menunjukkan cara menambahkan pernyataan Condition
pernyataan yang menentukan instans S3 Access Grants (s3:AccessGrantsInstance:
) dalam kebijakan IAM Anda. Saat menggunakan contoh kebijakan berikut, ganti InstanceArn
dengan informasi Anda sendiri.user input placeholders
iam-policy.json
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "
accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:region
:accountId
:access-grants/default"] } } }, { "Sid": "ObjectLevelWritePermissions", "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Wilayah AWS
:accountId
:access-grants/default"] } } }, { "Sid": "BucketLevelReadPermissions", "Effect":"Allow", "Action":[ "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::*" ], "Condition":{ "StringEquals": { "aws:ResourceAccount": "accountId
" }, "ArnEquals": { "s3:AccessGrantsInstanceArn": ["arn:aws:s3:Wilayah AWS
:accountId
:access-grants/default"] } } }, { "Sid": "KMSPermissions", "Effect":"Allow", "Action":[ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource":[ "*" ] } ] }
Jalankan perintah berikut:
aws iam put-role-policy \ --role-name accessGrantsTestRole \ --policy-name accessGrantsTestRole \ --policy-document file://iam-policy.json
contoh Daftarkan lokasi default
aws s3control create-access-grants-location \ --account-id
111122223333
\ --location-scopes3://
\ --iam-role-arn arn:aws:iam::111122223333
:role/accessGrantsTestRole
Respons:
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00", "AccessGrantsLocationId": "default", "AccessGrantsLocationArn": "arn:aws:s3:
us-east-2
:111122223333
:access-grants/default/location/default", "LocationScope": "s3://” "IAMRoleArn": "arn:aws:iam::111122223333
:role/accessGrantsTestRole" }
contoh Daftarkan lokasi kustom
aws s3control create-access-grants-location \ --account-id
111122223333
\ --location-scopes3://DOC-BUCKET-EXAMPLE/
\ --iam-role-arn arn:aws:iam::123456789012
:role/accessGrantsTestRole
Respons:
{"CreatedAt": "2023-05-31T18:23:48.107000+00:00", "AccessGrantsLocationId": "635f1139-1af2-4e43-8131-a4de006eb456", "AccessGrantsLocationArn": "arn:aws:s3:
us-east-2
:111122223333
:access-grants/default/location/635f1139-1af2-4e43-8131-a4de006eb888", "LocationScope": "s3://DOC-BUCKET-EXAMPLE/", "IAMRoleArn": "arn:aws:iam::111122223333
:role/accessGrantsTestRole" }
Untuk informasi tentang dukungan API REST Amazon S3 untuk mengelola instans S3 Access Grants, lihat bagian berikut di Referensi API Amazon Simple Storage Service:
Bagian ini memberikan contoh cara mendaftarkan lokasi dengan menggunakan AWS SDKs.
Untuk menggunakan contoh berikut, ganti
dengan informasi Anda sendiri.user input
placeholders