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 IAM peran 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 IAM peran. 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:
-
Anggaplah bahwa
amzn-s3-demo-bucket
adalah lokasi terdaftar di instance S3 Access Grants Anda dengan IAM peran yang dipetakan padanya, tetapi IAM peran ini ditolak akses ke awalan tertentu di dalam bucket. Dalam hal ini, Anda dapat mendaftarkan awalan yang tidak dapat diakses IAM peran sebagai lokasi terpisah dan memetakan lokasi tersebut ke IAM peran 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 IAM peran membatasi akses ke titik VPC akhir. Kemudian, ketika penerima hibah meminta kredensil S3 Access Grants, S3 Access Grants mengasumsikan peran lokasi untuk menjual kredenal sementara. IAM Kredensi ini akan menolak akses ke bucket tertentu kecuali penelepon berada dalam titik akhir. VPC Izin penolakan ini diterapkan selain izin regulerREAD,WRITE, atau READWRITE yang ditentukan dalam hibah.
Saat mendaftarkan lokasi, Anda juga harus menentukan IAM peran 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:
S3 URI | IAMperan | 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 IAM peran yang memiliki izin untuk mengakses data S3 Anda di file. Wilayah AWS Untuk informasi selengkapnya, lihat Membuat IAM peran di panduan AWS IAM Identity Center pengguna.
Dalam kebijakan kepercayaan IAM peran, berikan akses utama layanan S3 Access Grants (
access-grants.s3.amazonaws.com
) ke IAM peran yang Anda buat. Untuk melakukannya, Anda dapat membuat JSON file yang berisi pernyataan berikut. Untuk menambahkan kebijakan kepercayaan ke akun Anda, lihat Membuat peran menggunakan kebijakan kepercayaan khusus.TestRolePolicy.json
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1234567891011", "Action": ["sts:AssumeRole", "sts:SetSourceIdentity", "sts:SetContext"], "Effect": "Allow", "Principal": {"Service":"access-grants.s3.amazonaws.com"}, "Condition":{ "StringEquals":{ "aws:SourceAccount":"
accountId
", "aws:SourceArn":"arn:aws:s3:region
:accountId
:access-grants/default" } //Optionally, for an IAM Identity Center use case, add: "ForAnyValue:StringEquals": { "aws:RequestContextProvider":"arn:aws:iam::aws:contextProvider/IdentityCenter" } } } ] }-
Buat IAM kebijakan untuk melampirkan izin Amazon S3 ke IAM peran 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, contoh berikut menyertakan AWS KMS izin yang diperlukan untuk peran tersebut dalam IAM kebijakan. Jika Anda tidak menggunakan fitur ini, Anda dapat menghapus izin ini dari IAM kebijakan Anda.
-
Anda dapat membatasi IAM peran 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 instance S3 Access Grants ARN dalamCondition
pernyataan dengan instance S3 Access Grants AndaARN, 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 menggunakan konsol Amazon S3,AWS CLI(), AWS Command Line Interface Amazon S3, atau. REST API 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 URI jalur S3 ke lokasi yang ingin Anda daftarkan. Untuk URI format S3, lihat tabel format lokasi. Setelah Anda memasukkanURI, Anda dapat memilih Lihat untuk menelusuri lokasi.
-
Untuk IAMperan tersebut, pilih salah satu dari yang berikut ini:
-
Pilih dari IAM peran yang ada
Pilih IAM peran 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 IAM peran ARN
Arahkan ke IAMKonsol
. Salin Nama Sumber Daya Amazon (ARN) IAM peran 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 IAM peran dengan akses 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 JSON file yang berisi pernyataan berikut. 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 IAM perintah 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 IAM kebijakan 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 tersebut dalam IAM kebijakan. Jika Anda tidak menggunakan fitur ini, Anda dapat menghapus izin ini dari IAM kebijakan Anda.
Untuk memastikan bahwa IAM peran hanya dapat digunakan untuk mengakses data di S3 jika kredensialnya dijual oleh S3 Access Grants, contoh ini menunjukkan cara menambahkan Condition
pernyataan yang menentukan instance () S3 Access Grants () dalam kebijakan Anda. s3:AccessGrantsInstance:
IAM 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 REST API dukungan Amazon S3 untuk mengelola instans S3 Access Grants, lihat bagian berikut di Referensi Layanan Penyimpanan Sederhana Amazon: API
Bagian ini memberikan contoh cara mendaftarkan lokasi dengan menggunakan AWS SDKs.
Untuk menggunakan contoh berikut, ganti
dengan informasi Anda sendiri.user input
placeholders