Melewati tag sesi di AWS STS - AWS Identity and Access Management

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Melewati tag sesi di AWS STS

Tag sesi adalah atribut pasangan nilai kunci yang Anda lewati saat Anda mengambil peran IAM atau menyatukan pengguna. AWS STS Anda melakukan ini dengan membuat permintaan AWS CLI atau AWS API melalui AWS STS atau melalui penyedia identitas Anda (iDP). Saat Anda menggunakan AWS STS untuk meminta kredensil keamanan sementara, Anda membuat sesi. Sesi berakhir dan memiliki kredensial, seperti pasangan access key dan token sesi. Saat Anda menggunakan kredensial sesi untuk membuat permintaan berikutnya, konteks permintaan mencakup kunci konteks aws:PrincipalTag. Anda dapat menggunakan kunci aws:PrincipalTag dalam elemen Condition elemen kebijakan Anda untuk mengizinkan atau menolak akses berdasarkan tag tersebut.

Saat Anda menggunakan kredensial sementara untuk membuat permintaan, prinsipal Anda mungkin mencakup serangkaian tag. Tag ini berasal dari sumber berikut:

  1. Tag sesi — Tag diteruskan saat Anda mengambil peran atau menggabungkan pengguna menggunakan AWS API AWS CLI atau. Untuk informasi selengkapnya tentang operasi ini, lihat Operasi pemberian tag ke sesi.

  2. Tag sesi transitif masuk — Tag yang diwarisi dari sesi sebelumnya dalam rantai peran. Untuk informasi selengkapnya, lihat Merangkai peran dengan tag sesi dalam topik ini.

  3. Tag IAM — Tag yang dilampirkan ke IAM Anda mengambil peran.

Operasi pemberian tag ke sesi

Anda dapat meneruskan tag sesi menggunakan operasi berikut AWS CLI atau AWS API di AWS STS. Fitur AWS Management Console Switch Role tidak memungkinkan Anda untuk meneruskan tag sesi.

Anda juga dapat mengatur tag sesi sebagai transitif. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat Merangkai peran dengan tag sesi.

Membandingkan metode untuk meneruskan tag sesi
Operasi Siapa yang bisa mengambil peran Metode untuk melewati tag Metode untuk mengatur tag transitif
Operasi assume-role CLI atau AssumeRole API Pengguna IAM atau sesi Tags Parameter API atau --tags Opsi CLI TransitiveTagKeys Parameter API atau --transitive-tag-keys Opsi CLI
Operasi assume-role-with-saml CLI atau AssumeRoleWithSAML API Setiap pengguna yang diautentikasi menggunakan penyedia identitas SAMP PrincipalTag Atribut SAML TransitiveTagKeys Atribut SAML
Operasi assume-role-with-web-identity CLI atau AssumeRoleWithWebIdentity API Setiap pengguna yang diautentikasi menggunakan penyedia OIDC PrincipalTagToken OIDC TransitiveTagKeysToken OIDC
Operasi get-federation-token CLI atau GetFederationToken API Pengguna IAM atau pengguna root Tags Parameter API atau --tags Opsi CLI Tidak didukung

Operasi yang mendukung penandaan sesi dapat gagal dalam kondisi berikut:

  • Anda meneruskan lebih dari 50 tag sesi.

  • Plaintext kunci tag sesi Anda melebihi 128 karakter.

  • Plaintext dari nilai tag sesi Anda melebihi 256 karakter.

  • Ukuran total plaintext kebijakan sesi melebihi 2048 karakter.

  • Ukuran paket total dari kebijakan sesi gabungan dan tag terlalu besar. Jika operasi gagal, pesan kesalahan menunjukkan seberapa dekat kebijakan dan tag yang digabungkan mencapai batas ukuran atas, berdasarkan persentase.

Hal yang perlu diketahui tentang tag sesi

Sebelum menggunakan tag sesi, tinjau detail berikut tentang sesi dan tag.

  • Saat menggunakan tag sesi, kebijakan kepercayaan untuk semua peran yang terhubung ke tag penerusan penyedia identitas (iDP) harus memiliki izin. sts:TagSession Untuk peran tanpa izin ini dalam kebijakan kepercayaan, AssumeRole operasi gagal.

  • Saat Anda meminta sesi, Anda dapat menentukan tag utama sebagai tag sesi. Tag berlaku untuk permintaan yang Anda buat dengan menggunakan kredensial sesi.

  • Tag sesi menggunakan pasangan kunci-nilai. Misalnya, untuk menambahkan informasi kontak ke sesi, Anda dapat menambahkan kunci tag sesi email dan nilai tag johndoe@example.com.

  • Tag sesi harus mengikuti aturan untuk penamaan tag di IAM dan AWS STS. Topik ini mencakup informasi tentang kepekaan huruf besar-kecil dan awalan terbatas yang berlaku untuk tag sesi Anda.

  • Tag sesi baru mengganti peran yang diasumsikan atau tag pengguna gabungan yang ada dengan kunci tag yang sama, terlepas dari kasus karakternya.

  • Anda tidak dapat meneruskan tag sesi menggunakan AWS Management Console.

  • Tag sesi hanya valid untuk sesi saat ini.

  • Tag sesi mendukung perangkaian peran. Secara default, AWS STS tidak meneruskan tag ke sesi peran berikutnya. Anda juga dapat mengatur tag sesi sebagai transitif. Tag transitif bertahan selama rantai peran dan menggantikan ResourceTag nilai yang cocok setelah evaluasi kebijakan kepercayaan peran. Untuk informasi selengkapnya, lihat Merangkai peran dengan tag sesi.

  • Anda dapat menggunakan tag sesi untuk mengontrol akses ke sumber daya atau untuk mengontrol tag apa yang dapat diteruskan ke sesi selanjutnya. Untuk informasi selengkapnya, lihat Tutorial IAM: Menggunakan tanda sesi SAML untuk ABAC.

  • Anda dapat melihat tag utama untuk sesi Anda, termasuk tag sesi, di AWS CloudTrail log. Untuk informasi selengkapnya, lihat Melihat tag sesi di CloudTrail.

  • Anda harus memberikan satu nilai untuk setiap tag sesi. AWS STS tidak mendukung tag sesi multi-nilai.

  • Anda dapat meneruskan maksimum 50 tag sesi. Jumlah dan ukuran sumber daya IAM dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat IAM dan AWS STS kuota.

  • AWS Konversi memampatkan kebijakan sesi yang diteruskan dan tag sesi yang digabungkan ke dalam format biner yang dikemas dengan batas terpisah. Jika Anda melebihi batas ini, pesan kesalahan AWS CLI atau AWS API menunjukkan seberapa dekat kebijakan dan tag yang digabungkan mencapai batas ukuran atas, berdasarkan persentase.

Izin diperlukan untuk menambahkan tag sesi

Selain tidakan yang sesuai dengan operasi API, Anda harus memiliki tindakan khusus izin berikut dalam kebijakan Anda:

sts:TagSession
penting

Saat menggunakan tag sesi, kebijakan kepercayaan peran untuk semua peran yang terhubung ke penyedia identitas (IdP) harus memiliki izin sts:TagSession. AssumeRoleOperasi gagal untuk peran apa pun yang terhubung ke tag sesi idP yang lewat tanpa izin ini. Jika Anda tidak ingin memperbarui kebijakan kepercayaan peran untuk setiap peran, Anda dapat menggunakan instans IdP terpisah untuk meneruskan tag sesi. Kemudian, tambahkan sts:TagSession izin hanya untuk peran yang terhubung ke iDP terpisah.

Anda dapat menggunakan tindakan sts:TagSession dengan kunci syarat berikut.

  • aws:PrincipalTag— Membandingkan tag yang dilampirkan pada prinsipal yang membuat permintaan dengan tag yang Anda tentukan dalam kebijakan. Misalnya, Anda dapat mengizinkan prinsipal untuk meneruskan tag sesi hanya jika prinsipal yang mengajukan permintaan memiliki tag yang ditentukan.

  • aws:RequestTag— Membandingkan pasangan nilai kunci tag yang diteruskan dalam permintaan dengan pasangan tag yang Anda tentukan dalam kebijakan. Misalnya, Anda dapat mengizinkan prinsipal untuk meneruskan tag sesi yang ditentukan, tetapi hanya dengan nilai yang ditentukan.

  • aws:ResourceTag— Membandingkan pasangan nilai kunci tag yang Anda tentukan dalam kebijakan dengan pasangan nilai kunci yang dilampirkan ke sumber daya. Misalnya, Anda dapat mengizinkan prinsipal untuk meneruskan tag sesi hanya jika peran yang mereka ambil menyertakan tag yang ditentukan.

  • aws:TagKeys— Membandingkan kunci tag dalam permintaan dengan kunci yang Anda tentukan dalam kebijakan. Misalnya, Anda dapat mengizinkan prinsipal untuk hanya meneruskan tag sesi dengan kunci tag yang ditentukan. Kunci persyaratan ini membatasi rangkaian tag sesi maksimum yang dapat diteruskan.

  • sts:TransitiveTagKeys- Membandingkan kunci tag sesi transitif dalam permintaan dengan yang ditentukan dalam kebijakan. Misalnya, Anda dapat menyusun kebijakan untuk mengizinkan prinsipal mengatur hanya tag tertentu sebagai transitif. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat Merangkai peran dengan tag sesi.

Misalnya, kebijakan kepercayaan peran berikut memungkinkan test-session-tags pengguna untuk mengambil peran dengan kebijakan terlampir. Ketika pengguna tersebut mengambil peran tersebut, mereka harus menggunakan AWS API AWS CLI atau untuk meneruskan tiga tag sesi yang diperlukan dan ID eksternal yang diperlukan. Selain itu, pengguna dapat memilih untuk mengatur tag Project dan Department tag sebagai transitif.

contoh Contoh kebijakan kepercayaan peran untuk tag sesi
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIamUserAssumeRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::123456789012:user/test-session-tags"}, "Condition": { "StringLike": { "aws:RequestTag/Project": "*", "aws:RequestTag/CostCenter": "*", "aws:RequestTag/Department": "*" }, "StringEquals": {"sts:ExternalId": "Example987"} } }, { "Sid": "AllowPassSessionTagsAndTransitive", "Effect": "Allow", "Action": "sts:TagSession", "Principal": {"AWS": "arn:aws:iam::123456789012:user/test-session-tags"}, "Condition": { "StringLike": { "aws:RequestTag/Project": "*", "aws:RequestTag/CostCenter": "*" }, "StringEquals": { "aws:RequestTag/Department": [ "Engineering", "Marketing" ] }, "ForAllValues:StringEquals": { "sts:TransitiveTagKeys": [ "Project", "Department" ] } } } ] }

Apa yang dilakukan kebijakan ini?

  • AllowIamUserAssumeRolePernyataan tersebut memungkinkan test-session-tags pengguna untuk mengambil peran dengan kebijakan terlampir. Ketika pengguna tersebut mengasumsikan peran tersebut, mereka harus meneruskan tag sesi yang diperlukan dan ID eksternal.

    • Blok syarat pertama dari pernyataan ini mengharuskan pengguna untuk meneruskan Project, CostCenter, dan Department tag sesi. Nilai tag tidak penting dalam pernyataan ini, sehingga Anda dapat menggunakan wildcard (*) untuk nilai tag. Blok ini memastikan bahwa pengguna melewati setidaknya tiga tag sesi ini. Jika tidak, operasi gagal. Pengguna dapat meneruskan tag tambahan.

    • Blok syarat kedua mengharuskan pengguna untuk meneruskan ID eksternal dengan nilai Example987.

  • Pernyataan AllowPassSessionTagsAndTransitive memperbolehkan tindakan khusus izin sts:TagSession. Tindakan ini harus diperbolehkan sebelum pengguna dapat meneruskan tag sesi. Jika kebijakan Anda mencakup pernyataan pertama tanpa pernyataan kedua, pengguna tidak dapat mengasumsikan peran tersebut.

    • Blok syarat pertama dari pernyataan ini memperbolehkan pengguna untuk meneruskan nilai apa pun untuk sesi tag CostCenter dan Project. Anda melakukannya dengan menggunakan wildcard (*) untuk nilai tag dalam kebijakan, yang mengharuskan Anda menggunakan operator StringLikekondisi.

    • Blok syarat kedua memperbolehkan pengguna untuk hanya meneruskan Engineering atau Marketing nilai untuk tag sesi Department.

    • Blok kondisi ketiga mencantumkan kumpulan tag maksimum yang dapat Anda atur sebagai transitif. Pengguna dapat memilih untuk mengatur subset atau tidak ada tag sebagai transitif. Mereka tidak dapat menetapkan tag tambahan sebagai transitif. Anda dapat meminta agar mereka mengatur setidaknya salah satu tag sebagai transtitif dengan menambahkan blok syarat lain yang mencakup "Null":{"sts:TransitiveTagKeys":"false"}.

Meneruskan tag sesi dengan menggunakan AssumeRole

AssumeRoleOperasi mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Anda dapat menggunakan kredensi pengguna atau peran IAM untuk menelepon. AssumeRole Untuk meneruskan tag sesi sambil mengambil peran, gunakan --tags AWS CLI opsi atau parameter Tags AWS API.

Untuk menetapkan tag sebagai transitif, gunakan --transitive-tag-keys AWS CLI opsi atau parameter TransitiveTagKeys AWS API. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat Merangkai peran dengan tag sesi.

Contoh berikut menunjukkan permintaan sampel yang menggunakan AssumeRole. Dalam contoh ini, saat mengambil peran my-role-example, Anda membuat sesi bernama my-session. Anda menambahkan pasangan nilai kunci tanda sesi Project = Automation, CostCenter = 12345, dan Department = Engineering. Anda juga mengatur tanda Project dan Department sebagai transitif dengan menentukan kuncinya.

contoh Contoh AssumeRole permintaan CLI
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/my-role-example \ --role-session-name my-session \ --tags Key=Project,Value=Automation Key=CostCenter,Value=12345 Key=Department,Value=Engineering \ --transitive-tag-keys Project Department \ --external-id Example987

Melewati tag sesi menggunakan AssumeRoleWith SAMP

AssumeRoleWithSAMLOperasi mengotentikasi dengan federasi berbasis SAMP. Operasi ini mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Untuk informasi selengkapnya tentang penggunaan federasi berbasis SAMP untuk AWS Management Console akses, lihat. Mengaktifkan pengguna federasi SAMP 2.0 untuk mengakses AWS Management Console Untuk detail tentang AWS CLI atau akses AWS API, lihatFederasi SAML 2.0. Untuk tutorial tentang mengonfigurasi federasi SAMP untuk pengguna Active Directory Anda, lihat AWS Otentikasi Federasi dengan Layanan Federasi Direktori Aktif (ADFS) di Blog Keamanan. AWS

Sebagai administrator, Anda dapat mengizinkan anggota direktori perusahaan Anda untuk bergabung AWS menggunakan AWS STS AssumeRoleWithSAML operasi. Untuk melakukannya, Anda harus menyelesaikan tugas berikut:

AWS termasuk penyedia identitas dengan end-to-end pengalaman bersertifikat untuk tag sesi dengan solusi identitas mereka. Untuk mempelajari cara menggunakan penyedia identitas ini untuk mengonfigurasi tag sesi, lihat Integrasikan penyedia solusi SAMP pihak ketiga dengan AWS.

Untuk meneruskan atribut SAML sebagai tanda sesi, sertakan elemen Attribute dengan atribut Name yang diatur ke https://aws.amazon.com/SAML/Attributes/PrincipalTag:{TagKey}. Gunakan elemen AttributeValue untuk menentukan nilai tanda. Menyertakan elemen Attribute terpisah untuk setiap tag sesi.

Misalnya, anggap bahwa Anda ingin meneruskan atribut identitas berikut sebagai tag sesi:

  • Project:Automation

  • CostCenter:12345

  • Department:Engineering

Untuk meneruskan atribut ini, sertakan elemen berikut ini dalam pernyataan SAML Anda.

contoh Contoh snippet pernyataan SAML
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Project"> <AttributeValue>Automation</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:CostCenter"> <AttributeValue>12345</AttributeValue> </Attribute> <Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:Department"> <AttributeValue>Engineering</AttributeValue> </Attribute>

Untuk mengatur tag sebelumnya sebagai transitif, sertakan Attribute elemen lain dengan Name atribut yang disetel ke. https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat Merangkai peran dengan tag sesi.

Untuk mengatur Project dan Department tag sebagai transitif, gunakan atribut multi-nilai berikut:

contoh Contoh snippet pernyataan SAML
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys"> <AttributeValue>Project</AttributeValue> <AttributeValue>Department</AttributeValue> </Attribute>

Meneruskan tag sesi dengan menggunakan AssumeRoleWithWebIdentity

Gunakan federasi yang sesuai dengan OpenID Connect (OIDC) untuk mengautentikasi operasi. AssumeRoleWithWebIdentity Operasi ini mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Untuk informasi selengkapnya tentang penggunaan federasi identitas web untuk AWS Management Console akses, lihatFederasi OIDC.

Untuk meneruskan tanda sesi dari OpenID Connect (OIDC), Anda harus menyertakan tanda sesi dalam JSON Web Token (JWT). Sertakan tag sesi dalam namespace https://aws.amazon.com/tags dalam token ketika anda mengajukan permintaan AssumeRoleWithWebIdentity. Untuk mempelajari lebih lanjut tentang token dan klaim OIDC, lihat Menggunakan Token dengan Kolam Pengguna di Panduan Developer Amazon Cognito .

Misalnya, JWT yang diterjemahkan berikut menggunakan token untuk memanggil AssumeRoleWithWebIdentity dengan tagProject,CostCenter, dan sesi. Department Token juga mengatur Project dan CostCenter tag sebagai transitif. Tag transitif tetap ada selama perangkaian peran. Untuk informasi selengkapnya, lihat Merangkai peran dengan tag sesi.

contoh Contoh Token Web JSON yang diterjemahkan
{ "sub": "johndoe", "aud": "ac_oic_client", "jti": "ZYUCeRMQVtqHypVPWAN3VB", "iss": "https://xyz.com", "iat": 1566583294, "exp": 1566583354, "auth_time": 1566583292, "https://aws.amazon.com/tags": { "principal_tags": { "Project": ["Automation"], "CostCenter": ["987654"], "Department": ["Engineering"] }, "transitive_tag_keys": [ "Project", "CostCenter" ] } }

Meneruskan tag sesi dengan menggunakan GetFederationToken

GetFederationTokenIni memungkinkan Anda untuk menyatukan pengguna Anda. Operasi ini mengembalikan satu set kredensi sementara yang dapat Anda gunakan untuk mengakses AWS sumber daya. Untuk menambahkan tag ke sesi pengguna federasi Anda, gunakan --tags AWS CLI opsi atau parameter Tags AWS API. Anda tidak dapat menyetel tag sesi sebagai transitif saat Anda menggunakanGetFederationToken, karena Anda tidak dapat menggunakan kredenal sementara untuk mengambil peran. Anda tidak dapat menggunakan rantai peran dalam kasus ini.

Contoh berikut menunjukkan permintaan sampel menggunakan GetFederationToken. Dalam contoh ini, saat meminta token, Anda membuat sesi bernama my-fed-user. Anda menambahkan pasangan nilai kunci tanda sesi Project = Automation dan Department = Engineering.

contoh Contoh GetFederationToken permintaan CLI
aws sts get-federation-token \ --name my-fed-user \ --tags key=Project,value=Automation key=Department,value=Engineering

Saat Anda menggunakan kredensi sementara yang dikembalikan oleh GetFederationToken operasi, tag utama sesi menyertakan tag pengguna dan tag sesi yang diteruskan.

Merangkai peran dengan tag sesi

Anda dapat mengasumsikan satu peran dan kemudian menggunakan kredensial sementara untuk mengasumsikan peran lain. Anda dapat melanjutkan dari sesi ke sesi. Ini disebut perangkaian peran. Saat Anda meneruskan tag sesi sembari mengasumsikan peran, Anda dapat mengatur kunci sebagai transitif. Hal ini memastikan bahwa tag sesi tersebut diteruskan ke sesi berikutnya dalam rantai peran. Anda tidak dapat mengatur tag peran sebagai transitif. Untuk meneruskan tag ini ke sesi berikutnya, tentukan tag tersebut sebagai tag sesi.

catatan

Tag transitif bertahan selama rantai peran dan menggantikan ResourceTag nilai yang cocok setelah evaluasi kebijakan kepercayaan peran.

Contoh berikut menunjukkan bagaimana AWS STS meneruskan tag sesi, tag transitif, dan tag peran ke sesi berikutnya dalam rantai peran.

Dalam contoh skenario rantai peran ini, Anda menggunakan kunci akses pengguna IAM AWS CLI untuk mengambil peran bernama. Role1 Anda kemudian menggunakan kredensial sesi yang dihasilkan untuk mengambil peran kedua bernama Role2. Anda kemudian dapat menggunakan kredensial sesi kedua untuk mengambil peran ketiga bernama Role3. Permintaan ini terjadi sebagai tiga operasi terpisah. Setiap peran sudah diberi tag di IAM. Dan dalam setiap permintaan, Anda meneruskan tag sesi tambahan.

Perangkaian peran

Saat Anda merangkai peran, Anda dapat memastikan bahwa tag dari sesi sebelumnya tetap berlanjut ke sesi berikutnya. Untuk melakukan ini menggunakan perintah assume-role CLI, Anda harus meneruskan tag sebagai tag sesi dan mengatur tag sebagai transitif. Anda meneruskan tag Star = 1 sebagai tag sesi. Perintah juga melampirkan tag Heart = 1 ke peran dan berlaku sebagai tag utama saat Anda menggunakan sesi. Namun, Anda juga menginginkan tag Heart = 1 tag untuk diteruskan secara otomatis ke sesi kedua atau ketiga. Untuk melakukannya, Anda menyertakannya secara manual sebagai tag sesi. Tag utama sesi yang dihasilkan mencakup kedua tag ini, dan menetapkannya sebagai transitif.

Mengasumsikan peran pertama dalam rangkaian peran

Anda melakukan permintaan ini menggunakan AWS CLI perintah berikut:

contoh Contoh AssumeRole permintaan CLI
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role1 \ --role-session-name Session1 \ --tags Key=Star,Value=1 Key=Heart,Value=1 \ --transitive-tag-keys Star Heart

Anda kemudian menggunakan kredensials untuk sesi tersebut guna mengambil Role2. Perintah melampirkan tag Sun = 2 ke peran kedua dan berlaku sebagai tag utama saat Anda menggunakan sesi kedua. StarTag Heart dan mewarisi tag sesi transitif di sesi pertama. Sesi kedua yang dihasilkan tag utama adalah Heart =1, Star =1, dan Sun =2. Heartdan Star terus menjadi transitif. SunTag yang Role2 dilampirkan tidak ditandai sebagai transitif karena bukan tag sesi. Sesi mendatang tidak mewarisi tag ini.

Mengasumsikan peran kedua dalam rangkaian peran

Anda melakukan permintaan kedua ini menggunakan AWS CLI perintah berikut:

contoh Contoh AssumeRole permintaan CLI
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role2 \ --role-session-name Session2

Anda kemudian menggunakan kredensial kedua guna mengambil Role3. Tanda prinsipal untuk sesi ketiga berasal dari tanda sesi baru, tanda sesi transitif yang diturunkan, dan tanda peran. 1Tag Heart = 1 dan Star = pada sesi kedua diwarisi dari tag sesi transitif di sesi pertama. Jika Anda mencoba untuk melewatkan tag 2 sesi Sun =, operasi gagal. Tag sesi Star = 1 yang diwarisi menggantikan tag role Star =. 3 Dalam rantai peran, nilai tag transitif mengesampingkan peran yang cocok dengan ResourceTag nilai setelah evaluasi kebijakan kepercayaan peran. Dalam contoh ini, jika Role3 menggunakan Star sebagai ResourceTag dalam kebijakan kepercayaan peran, dan menetapkan ResourceTag nilai ke nilai tag transitif dari sesi peran pemanggilan. LightningTag peran juga berlaku untuk sesi ketiga, dan tidak ditetapkan sebagai transitif.

Mengasumsikan peran ketiga dalam rangkaian peran

Anda melakukan permintaan ketiga menggunakan AWS CLI perintah berikut:

contoh Contoh AssumeRole permintaan CLI
aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/Role3 \ --role-session-name Session3

Menggunakan tag sesi untuk ABAC

Attribute-based access control (ABAC) menggunakan strategi otorisasi yang mendefinisikan izin berdasarkan atribut tag.

Jika perusahaan menggunakan penyedia identitas (IdP) berbasis OIDC atau SAML untuk mengelola identitas pengguna, Anda dapat mengonfigurasi pernyataan untuk meneruskan tanda sesi ke AWS. Misalnya, dengan identitas pengguna perusahaan, ketika karyawan Anda bergabung AWS, AWS menerapkan atribut mereka pada prinsipal yang dihasilkan. Kemudian, Anda dapat menggunakan ABAC untuk mengizinkan atau menolak izin berdasarkan atribut tersebut. Untuk detailnya, lihat Tutorial IAM: Menggunakan tanda sesi SAML untuk ABAC.

Untuk informasi selengkapnya tentang penggunaan Pusat Identitas IAM dengan ABAC, lihat Atribut untuk kontrol akses di AWS IAM Identity Center Panduan Pengguna.

Melihat tag sesi di CloudTrail

Anda dapat menggunakan AWS CloudTrail untuk melihat permintaan yang digunakan untuk mengambil peran atau pengguna federasi. File CloudTrail log mencakup informasi tentang tag utama untuk peran yang diasumsikan atau sesi pengguna federasi. Untuk informasi selengkapnya, lihat Mencatat panggilan IAM dan AWS STS API dengan AWS CloudTrail.

Misalnya, asumsikan bahwa Anda membuat AWS STS AssumeRoleWithSAML permintaan, meneruskan tag sesi, dan menetapkan tag tersebut sebagai transitif. Anda dapat menemukan informasi berikut di CloudTrail log Anda.

contoh Contoh AssumeRoleWith log SAMP CloudTrail
"requestParameters": { "sAMLAssertionID": "_c0046cEXAMPLEb9d4b8eEXAMPLE2619aEXAMPLE", "roleSessionName": "MyRoleSessionName", "principalTags": { "CostCenter": "987654", "Project": "Unicorn" }, "transitiveTagKeys": [ "CostCenter", "Project" ], "durationSeconds": 3600, "roleArn": "arn:aws:iam::123456789012:role/SAMLTestRoleShibboleth", "principalArn": "arn:aws:iam::123456789012:saml-provider/Shibboleth" },

Anda dapat melihat contoh CloudTrail log berikut untuk melihat peristiwa yang menggunakan tag sesi.