Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
S3 Access Grants dan identitas direktori perusahaan
Anda dapat menggunakan Amazon S3 Access Grants untuk memberikan akses ke prinsipal AWS Identity and Access Management (IAM) (pengguna atau peran), baik dalam hal yang sama maupun yang lain. Akun AWS Namun, dalam banyak kasus, entitas yang mengakses data adalah pengguna akhir dari direktori perusahaan Anda. Alih-alih memberikan akses ke pengguna utama IAM, Anda dapat menggunakan S3 Access Grants untuk memberikan akses langsung ke pengguna dan grup perusahaan Anda. Dengan S3 Access Grants, Anda tidak perlu lagi memetakan identitas perusahaan Anda ke pengguna utama IAM menengah untuk mengakses data S3 Anda melalui aplikasi perusahaan Anda.
Fungsionalitas baru ini—dukungan untuk menggunakan akses identitas pengguna akhir ke data—disediakan dengan mengaitkan instance S3 Access Grants Anda dengan sebuah instance. AWS IAM Identity Center IAM Identity Center mendukung penyedia identitas berbasis standar dan merupakan hub AWS untuk layanan atau fitur apa pun, termasuk S3 Access Grants, yang mendukung identitas pengguna akhir. IAM Identity Center menyediakan dukungan otentikasi untuk identitas perusahaan melalui fitur propagasi identitas tepercaya. Untuk informasi selengkapnya, lihat Propagasi identitas terpercaya di seluruh aplikasi.
Untuk memulai dengan dukungan identitas tenaga kerja di S3 Access Grants, sebagai prasyarat, Anda mulai di IAM Identity Center dengan mengonfigurasi penyediaan identitas antara penyedia identitas perusahaan Anda dan IAM Identity Center. IAM Identity Center mendukung penyedia identitas perusahaan seperti Okta, Microsoft Entra ID (sebelumnya Azure Active Directory), atau penyedia identitas eksternal lainnya (IDP) yang mendukung protokol System for Cross-domain Identity Management (SCIM). Saat Anda menghubungkan Pusat Identitas IAM ke IdP dan mengaktifkan penyediaan otomatis, pengguna dan grup dari IdP Anda disinkronkan ke dalam penyimpanan identitas di Pusat Identitas IAM. Setelah langkah ini, IAM Identity Center memiliki pandangan sendiri tentang pengguna dan grup Anda, sehingga Anda dapat merujuk kepada mereka dengan menggunakan fitur lain Layanan AWS dan fitur, seperti S3 Access Grants. Untuk informasi selengkapnya tentang mengonfigurasi penyediaan otomatis Pusat Identitas IAM, lihat Penyediaan otomatis di Panduan Pengguna AWS IAM Identity Center .
IAM Identity Center terintegrasi AWS Organizations sehingga Anda dapat mengelola izin secara terpusat di beberapa Akun AWS tanpa mengonfigurasi setiap akun secara manual. Dalam organisasi tipikal, administrator identitas Anda mengonfigurasi satu instans Pusat Identitas IAM untuk seluruh organisasi, sebagai satu titik sinkronisasi identitas. Instance IAM Identity Center ini biasanya berjalan di dedicated Akun AWS di organisasi Anda. Dalam konfigurasi umum ini, Anda dapat merujuk ke identitas pengguna dan grup di S3 Access Grants dari manapun Akun AWS di organisasi.
Namun, jika AWS Organizations administrator belum mengonfigurasi instans Pusat Identitas IAM pusat, Anda dapat membuat instans lokal di akun yang sama dengan instans S3 Access Grants Anda. Konfigurasi seperti itu lebih umum untuk proof-of-concept atau kasus penggunaan pengembangan lokal. Dalam semua kasus, instance IAM Identity Center harus Wilayah AWS sama dengan instance S3 Access Grants yang akan dikaitkan.
Dalam diagram berikut konfigurasi Pusat Identitas IAM dengan IdP eksternal, IdP dikonfigurasi dengan SCIM untuk menyinkronkan penyimpanan identitas dari IdP ke penyimpanan identitas di IAM Identity Center.

Untuk menggunakan identitas direktori perusahaan Anda dengan S3 Access Grants, lakukan hal berikut ini:
-
Siapkan penyediaan Otomatis di Pusat Identitas IAM untuk menyinkronkan informasi pengguna dan grup dari IdP Anda ke Pusat Identitas IAM.
-
Konfigurasikan sumber identitas eksternal Anda dalam IAM Identity Center sebagai penerbit token tepercaya. Untuk informasi selengkapnya, lihat Propagasi identitas tepercaya di seluruh aplikasi di Panduan AWS IAM Identity Center Pengguna.
-
Kaitkan instans S3 Access Grants Anda dengan instans Pusat Identitas IAM Anda. Anda dapat melakukan ini saat membuat instans S3 Access Grants Anda. Jika Anda telah membuat instance S3 Access Grants, lihat. Kaitkan atau pisahkan instans Pusat Identitas IAM Anda
Bagaimana identitas direktori dapat mengakses data S3
Misalkan Anda memiliki pengguna direktori perusahaan yang perlu mengakses data S3 Anda melalui aplikasi perusahaan, misalnya, aplikasi penampil dokumen, yang terintegrasi dengan iDP eksternal Anda (misalnya, Okta) untuk mengautentikasi pengguna. Otentikasi pengguna dalam aplikasi ini biasanya dilakukan melalui pengalihan di browser web pengguna. Karena pengguna dalam direktori bukan pengguna utama IAM, aplikasi Anda memerlukan kredensial IAM yang dapat memanggil operasi S3 Access Grants GetDataAccess
API untuk mendapatkan kredensial akses ke data S3 atas nama pengguna. Tidak seperti pengguna IAM dan peran yang mendapatkan kredensialnya sendiri, aplikasi Anda memerlukan cara untuk mewakili pengguna direktori, yang tidak dipetakan ke peran IAM, sehingga pengguna bisa mendapatkan akses data melalui S3 Access Grants.
Transisi ini, dari pengguna direktori yang diautentikasi ke penelepon IAM yang dapat membuat permintaan ke S3 Access Grants atas nama pengguna direktori, dilakukan oleh aplikasi melalui fitur penerbit token tepercaya IAM Identity Center. Aplikasi, setelah mengautentikasi pengguna direktori, memiliki token identitas dari iDP (misalnya, Okta) yang mewakili pengguna direktori menurut Okta. Konfigurasi penerbit token tepercaya di IAM Identity Center memungkinkan aplikasi untuk menukar ini Okta token ( Okta penyewa dikonfigurasi sebagai “penerbit tepercaya”) untuk token identitas yang berbeda dari IAM Identity Center yang akan mewakili pengguna direktori di dalamnya dengan aman. Layanan AWS Aplikasi data kemudian akan mengambil peran IAM, menyediakan token pengguna direktori dari IAM Identity Center sebagai konteks tambahan. Aplikasi dapat menggunakan sesi IAM yang dihasilkan untuk memanggil S3 Access Grants. Token mewakili identitas aplikasi (pengguna utama IAM itu sendiri) serta identitas pengguna direktori.
Langkah utama dari transisi ini adalah pertukaran token. Aplikasi melakukan pertukaran token ini dengan memanggil operasi CreateTokenWithIAM
API di IAM Identity Center. Tentu saja, itu juga merupakan panggilan AWS API dan membutuhkan kepala sekolah IAM untuk menandatanganinya. Pengguna utama IAM yang membuat permintaan ini biasanya merupakan peran IAM yang terkait dengan aplikasi. Misalnya, jika aplikasi berjalan di Amazon EC2, CreateTokenWithIAM
permintaan biasanya dilakukan oleh peran IAM yang terkait dengan EC2 instance tempat aplikasi berjalan. Hasil dari CreateTokenWithIAM
panggilan yang berhasil adalah token identitas baru, yang akan dikenali di dalamnya Layanan AWS.
Langkah selanjutnya, sebelum aplikasi dapat memanggil GetDataAccess
nama pengguna direktori, adalah agar aplikasi mendapatkan sesi IAM yang mencakup identitas pengguna direktori. Aplikasi melakukan ini dengan AssumeRole
permintaan AWS Security Token Service (AWS STS) yang juga menyertakan token IAM Identity Center untuk pengguna direktori sebagai konteks identitas tambahan. Konteks tambahan inilah yang memungkinkan IAM Identity Center untuk menyebarkan identitas pengguna direktori ke langkah berikutnya. Peran IAM yang diasumsikan aplikasi adalah peran yang memerlukan izin IAM untuk memanggil operasi GetDataAccess
.
Setelah mengasumsikan peran IAM pembawa identitas dengan token IAM Identity Center untuk pengguna direktori sebagai konteks tambahan, aplikasi sekarang memiliki semua yang diperlukan untuk membuat permintaan yang ditandatangani GetDataAccess
atas nama pengguna direktori yang diautentikasi.
Penyebaran token didasarkan pada langkah-langkah berikut:
Buat aplikasi Pusat Identitas IAM
Pertama, buat aplikasi baru di IAM Identity Center. Aplikasi ini akan menggunakan template yang memungkinkan IAM Identity Center untuk mengidentifikasi jenis pengaturan aplikasi yang dapat Anda gunakan. Perintah untuk membuat aplikasi mengharuskan Anda untuk memberikan contoh IAM Identity Center Amazon Resource Name (ARN), nama aplikasi, dan penyedia aplikasi ARN. Penyedia aplikasi adalah SALL atau penyedia OAuth aplikasi yang akan digunakan aplikasi untuk melakukan panggilan ke IAM Identity Center.
Untuk menggunakan perintah contoh berikut, ganti
dengan informasi Anda sendiri:user input
placeholders
aws sso-admin create-application \ --instance-arn "arn:aws:sso:::instance/ssoins-ssoins-
1234567890abcdef
" \ --application-provider-arn "arn:aws:sso::aws:applicationProvider/custom
" \ --nameMyDataApplication
Respons:
{ "ApplicationArn": "arn:aws:sso::
123456789012
:application/ssoins-ssoins-1234567890abcdef
/apl-abcd1234a1b2c3d
" }
Buat penerbit token tepercaya
Sekarang setelah Anda memiliki aplikasi IAM Identity Center, langkah selanjutnya adalah mengonfigurasi penerbit token tepercaya yang akan digunakan untuk menukar nilai IdToken
Anda dari IdP Anda dengan token IAM Identity Center. Pada langkah ini Anda perlu memberikan item berikut:
-
URL penerbit penyedia identitas
-
Nama penerbit token tepercaya
-
Jalur atribut klaim
-
Jalur atribut toko identitas
-
Opsi pengambilan JSON Web Key Set (JWKS)
Jalur atribut klaim adalah atribut penyedia identitas yang akan digunakan untuk memetakan ke atribut penyimpanan identitas. Biasanya, jalur atribut klaim adalah alamat email pengguna, tetapi Anda dapat menggunakan atribut lain untuk melakukan pemetaan.
Buat file yang disebut oidc-configuration.json
dengan informasi berikut. Untuk menggunakan file ini, ganti
dengan informasi Anda sendiri.user input
placeholders
{ "OidcJwtConfiguration": { "IssuerUrl": "
https://login.microsoftonline.com/a1b2c3d4-abcd-1234-b7d5-b154440ac123/v2.0
", "ClaimAttributePath": "preferred_username
", "IdentityStoreAttributePath": "userName
", "JwksRetrievalOption": "OPEN_ID_DISCOVERY
" } }
Untuk membuat penerbit token tepercaya, jalankan perintah berikut. Untuk menggunakan contoh perintah ini, ganti
dengan informasi Anda sendiri.user input placeholders
aws sso-admin create-trusted-token-issuer \ --instance-arn "arn:aws:sso:::instance/ssoins-
1234567890abcdef
" \ --nameMyEntraIDTrustedIssuer
\ --trusted-token-issuer-typeOIDC_JWT
\ --trusted-token-issuer-configuration file://./oidc-configuration
.json
Respons
{ "TrustedTokenIssuerArn": "arn:aws:sso::
123456789012
:trustedTokenIssuer/ssoins-1234567890abcdef
/tti-43b4a822-1234-1234-1234-a1b2c3d41234
" }
Connect aplikasi IAM Identity Center dengan penerbit token tepercaya
Penerbit token tepercaya memerlukan beberapa pengaturan konfigurasi lagi untuk bekerja. Tetapkan audiens yang akan dipercaya oleh penerbit token tepercaya. Audiens adalah nilai di dalam IdToken
yang diidentifikasi oleh kunci dan dapat ditemukan di pengaturan penyedia identitas. Sebagai contoh:
1234973b-abcd-1234-abcd-345c5a9c1234
Buat file dengan nama grant.json
dengan konten berikut ini. Untuk menggunakan file ini, ubah audiens agar sesuai dengan pengaturan penyedia identitas Anda dan berikan ARN penerbit token tepercaya yang dikembalikan oleh perintah sebelumnya.
{ "JwtBearer": { "AuthorizedTokenIssuers": [ { "TrustedTokenIssuerArn": "arn:aws:sso::
123456789012
:trustedTokenIssuer/ssoins-1234567890abcdef
/tti-43b4a822-1234-1234-1234-a1b2c3d41234
", "AuthorizedAudiences": [ "1234973b-abcd-1234-abcd-345c5a9c1234
" ] } ] } }
Jalankan perintah contoh berikut. Untuk menggunakan perintah ini, ganti
dengan informasi Anda sendiri.user input placeholders
aws sso-admin put-application-grant \ --application-arn "arn:aws:sso::
123456789012
:application/ssoins-ssoins-1234567890abcdef
/apl-abcd1234a1b2c3d
" \ --grant-type "urn:ietf:params:oauth:grant-type:jwt-bearer" \ --grant file://./grant.json
\
Perintah ini menetapkan penerbit token tepercaya dengan pengaturan konfigurasi untuk mempercayai audiens dalam file grant.json
dan menautkan audiens ini dengan aplikasi yang dibuat pada langkah pertama untuk bertukar token dari jenis jwt-bearer
. String urn:ietf:params:oauth:grant-type:jwt-bearer
bukan merupakan string arbitrer. Ini adalah namespace terdaftar di profil pernyataan OAuth JSON Web Token (JWT). Anda dapat menemukan informasi lebih lanjut tentang namespace ini di RFC
Selanjutnya, gunakan perintah berikut untuk mengatur cakupan mana yang akan disertakan oleh penerbit token tepercaya saat bertukar IdToken
nilai dari penyedia identitas Anda. Untuk S3 Access Grants, nilai untuk --scope
parameter adalah s3:access_grants:read_write
.
aws sso-admin put-application-access-scope \ --application-arn "arn:aws:sso::
111122223333
:application/ssoins-ssoins-111122223333abcdef/apl-abcd1234a1b2c3d
" \ --scope "s3:access_grants:read_write"
Langkah terakhir adalah melampirkan kebijakan sumber daya ke aplikasi IAM Identity Center. Kebijakan ini akan memungkinkan peran IAM aplikasi Anda untuk membuat permintaan ke operasi API sso-oauth:CreateTokenWithIAM
dan menerima IdToken
nilai dari IAM Identity Center.
Buat file dengan nama authentication-method.json
dengan konten berikut ini. Ganti
dengan ID akun Anda.123456789012
{ "Iam": { "ActorPolicy": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:role/webapp" }, "Action": "sso-oauth:CreateTokenWithIAM", "Resource": "*" } ] } } }
Untuk melampirkan kebijakan ke aplikasi IAM Identity Center, jalankan perintah berikut:
aws sso-admin put-application-authentication-method \ --application-arn "arn:aws:sso::
123456789012
:application/ssoins-ssoins-1234567890abcdef
/apl-abcd1234a1b2c3d
" \ --authentication-method-typeIAM
\ --authentication-method file://./authentication-method.json
Ini melengkapi pengaturan konfigurasi untuk menggunakan S3 Access Grants dengan pengguna direktori melalui aplikasi web. Anda dapat menguji penyiapan ini secara langsung di aplikasi atau Anda dapat memanggil operasi CreateTokenWithIAM
API dengan menggunakan perintah berikut dari peran IAM yang diizinkan dalam kebijakan aplikasi Pusat Identitas IAM:
aws sso-oidc create-token-with-iam \ --client-id "arn:aws:sso::
123456789012
:application/ssoins-ssoins-1234567890abcdef
/apl-abcd1234a1b2c3d
" \ --grant-type urn:ietf:params:oauth:grant-type:jwt-bearer \ --assertionIdToken
Respons akan serupa dengan ini:
{ "accessToken": "<suppressed long string to reduce space>", "tokenType": "Bearer", "expiresIn": 3600, "refreshToken": "<suppressed long string to reduce space>", "idToken": "<suppressed long string to reduce space>", "issuedTokenType": "urn:ietf:params:oauth:token-type:refresh_token", "scope": [ "sts:identity_context", "s3:access_grants:read_write", "openid", "aws" ] }
Jika Anda memecahkan kode IdToken
nilai yang dikodekan dengan base64, Anda dapat melihat pasangan kunci-nilai dalam format JSON. Kunci sts:identity_context
berisi nilai yang perlu dikirim aplikasi Anda dalam sts:AssumeRole
permintaan untuk menyertakan informasi identitas pengguna direktori. Berikut adalah contoh yang IdToken
di-decode:
{ "aws:identity_store_id": "d-996773e796", "sts:identity_context": "AQoJb3JpZ2luX2VjEOTtl;<SUPRESSED>", "sub": "83d43802-00b1-7054-db02-f1d683aacba5", "aws:instance_account": "123456789012", "iss": "https://identitycenter.amazonaws.com/ssoins-1234567890abcdef", "sts:audit_context": "AQoJb3JpZ2luX2VjEOT<SUPRESSED>==", "aws:identity_store_arn": "arn:aws:identitystore::232642235904:identitystore/d-996773e796", "aud": "abcd12344U0gi7n4Yyp0-WV1LWNlbnRyYWwtMQ", "aws:instance_arn": "arn:aws:sso:::instance/ssoins-6987d7fb04cf7a51", "aws:credential_id": "EXAMPLEHI5glPh40y9TpApJn8...", "act": { "sub": "arn:aws:sso::232642235904:trustedTokenIssuer/ssoins-6987d7fb04cf7a51/43b4a822-1020-7053-3631-cb2d3e28d10e" }, "auth_time": "2023-11-01T20:24:28Z", "exp": 1698873868, "iat": 1698870268 }
Anda bisa mendapatkan nilai dari sts:identity_context
dan meneruskan informasi ini dalam sts:AssumeRole
panggilan. Berikut ini adalah contoh CLI dari sintaks. Peran yang akan diasumsikan adalah peran sementara dengan izin untuk menginvokasi s3:GetDataAccess
.
aws sts assume-role \ --role-arn "arn:aws:iam::
123456789012
:role/temp-role
" \ --role-session-name "TempDirectoryUserRole
" \ --provided-contexts ProviderArn="arn:aws:iam::aws:contextProvider/IdentityCenter",ContextAssertion="value from sts:identity_context
"
Anda sekarang dapat menggunakan kredensial yang diterima dari panggilan ini untuk menginvokasi operasi s3:GetDataAccess
API dan menerima kredensial akhir dengan akses ke sumber daya S3 Anda.