IAMpengidentifikasi - 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.

IAMpengidentifikasi

IAMmenggunakan beberapa pengidentifikasi yang berbeda untuk pengguna, IAM grup, peran, kebijakan, dan sertifikat server. Bagian ini menjelaskan pengidentifikasi dan kapan Anda menggunakan masing-masing pengidentifikasi.

Nama dan jalur yang ramah

Saat Anda membuat pengguna, peran, grup pengguna, atau kebijakan, atau saat Anda mengunggah sertifikat server, Anda memberikan nama yang ramah. Contohnya termasuk Bob, TestApp 1, Pengembang, ManageCredentialsPermissions, atau ProdServerCert.

Jika Anda menggunakan IAM API or AWS Command Line Interface (AWS CLI) untuk membuat IAM sumber daya, Anda dapat menambahkan jalur opsional. Anda dapat menggunakan satu jalur, atau sarang beberapa jalur sebagai struktur folder. Misalnya, Anda dapat menggunakan jalur bersarang /division_abc/subdivision_xyz/product_1234/engineering/ untuk mencocokkan struktur organisasi perusahaan Anda. Anda kemudian dapat membuat kebijakan untuk mengizinkan semua pengguna di jalur tersebut mengakses simulator kebijakanAPI. Untuk melihat kebijakan ini, lihat IAM: Akses API simulator kebijakan berdasarkan jalur pengguna. Untuk informasi tentang bagaimana nama ramah dapat ditentukan, lihat APIdokumentasi Pengguna. Untuk contoh-contoh tambahan tentang bagaimana Anda mungkin menggunakan jalur, lihat IAM ARNs.

Saat digunakan AWS CloudFormation untuk membuat sumber daya, Anda dapat menentukan jalur untuk pengguna, IAM grup, dan peran, serta kebijakan yang dikelola pelanggan.

Jika Anda memiliki pengguna dan grup pengguna di jalur yang sama, IAM tidak secara otomatis menempatkan pengguna dalam grup pengguna tersebut. Misalnya, Anda dapat membuat grup pengguna Pengembang dan menentukan jalurnya sebagai/division_abc/subdivision_xyz/product_1234/engineering/. Jika Anda membuat pengguna bernama Bob dan menambahkan jalur yang sama kepadanya, ini tidak secara otomatis menempatkan Bob di grup pengguna Pengembang. IAMtidak memberlakukan batasan apa pun antara pengguna atau IAM grup berdasarkan jalur mereka. Pengguna dengan jalur yang berbeda dapat menggunakan sumber daya yang sama jika mereka telah diberikan izin untuk sumber daya tersebut. Jumlah dan ukuran IAM sumber daya dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat IAMdan AWS STS kuota.

IAM ARNs

Sebagian besar sumber daya memiliki nama yang ramah misalnya, nama pengguna Bob atau grup pengguna bernamaDevelopers. Namun, bahasa kebijakan izin mengharuskan Anda menentukan sumber daya atau sumber daya menggunakan format Amazon Resource Name (ARN) berikut.

arn:partition:service:region:account:resource

Di mana:

  • partitionmengidentifikasi partisi untuk sumber daya. Untuk Wilayah AWS standar, partisinya adalah aws. Jika Anda memiliki sumber daya di partisi lain, maka partisi-nya adalah aws-partitionname. Contohnya, partisi untuk sumber daya di Wilayah Tiongkok (Beijing) adalah aws-cn. Anda tidak dapat mendelegasikan akses di antara akun di partisi yang berbeda.

  • servicemengidentifikasi AWS produk. IAMsumber daya selalu digunakaniam.

  • regionmengidentifikasi Wilayah sumber daya. Untuk IAM sumber daya, ini selalu dikosongkan.

  • accountmenentukan Akun AWS ID tanpa tanda hubung.

  • resourcemengidentifikasi sumber daya tertentu dengan nama.

Anda dapat menentukan IAM dan AWS STS ARNs menggunakan sintaks berikut. Bagian Wilayah kosong karena IAM sumber daya bersifat global. ARN

Sintaksis:

arn:aws:iam::account:root arn:aws:iam::account:user/user-name-with-path arn:aws:iam::account:group/group-name-with-path arn:aws:iam::account:role/role-name-with-path arn:aws:iam::account:policy/policy-name-with-path arn:aws:iam::account:instance-profile/instance-profile-name-with-path arn:aws:sts::account:federated-user/user-name arn:aws:sts::account:assumed-role/role-name/role-session-name arn:aws:sts::account:self arn:aws:iam::account:mfa/virtual-device-name-with-path arn:aws:iam::account:u2f/u2f-token-id arn:aws:iam::account:server-certificate/certificate-name-with-path arn:aws:iam::account:saml-provider/provider-name arn:aws:iam::account:oidc-provider/provider-name

Banyak dari contoh berikut termasuk jalur di bagian sumber dayaARN. Jalur tidak dapat dibuat atau dimanipulasi di AWS Management Console. Untuk menggunakan jalur, Anda harus bekerja dengan sumber daya dengan menggunakan AWS CLI,, atau Alat untuk Windows PowerShell. AWS API

Contoh:

arn:aws:iam::123456789012:root arn:aws:iam::123456789012:user/JohnDoe arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe arn:aws:iam::123456789012:group/Developers arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers arn:aws:iam::123456789012:role/S3Access arn:aws:iam::123456789012:role/application_abc/component_xyz/RDSAccess arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer arn:aws:iam::123456789012:role/service-role/QuickSightAction arn:aws:iam::123456789012:policy/UsersManageOwnCredentials arn:aws:iam::123456789012:policy/division_abc/subdivision_xyz/UsersManageOwnCredentials arn:aws:iam::123456789012:instance-profile/Webserver arn:aws:sts::123456789012:federated-user/JohnDoe arn:aws:sts::123456789012:assumed-role/Accounting-Role/JaneDoe arn:aws:sts::123456789012:self arn:aws:iam::123456789012:mfa/JaneDoeMFA arn:aws:iam::123456789012:u2f/user/JohnDoe/default (U2F security key) arn:aws:iam::123456789012:server-certificate/ProdServerCert arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert arn:aws:iam::123456789012:saml-provider/ADFSProvider arn:aws:iam::123456789012:oidc-provider/GoogleProvider arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/a1b2c3d4567890abcdefEXAMPLE11111 arn:aws:iam::123456789012:oidc-provider/server.example.org

Contoh berikut memberikan detail lebih lanjut untuk membantu Anda memahami ARN format untuk berbagai jenis IAM dan AWS STS sumber daya.

  • Pengguna IAM di akun:

    catatan

    Setiap nama IAM pengguna adalah unik. Nama pengguna tidak peka huruf besar/kecil untuk pengguna, seperti selama proses masuk, tetapi peka huruf besar/kecil saat Anda menggunakannya dalam kebijakan atau sebagai bagian dari. ARN

    arn:aws:iam::123456789012:user/JohnDoe
  • Pengguna lain dengan jalur yang mencerminkan bagan organisasi:

    arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe
  • Grup pengguna IAM:

    arn:aws:iam::123456789012:group/Developers
  • Grup IAM pengguna dengan jalur:

    arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers
  • Peran IAM:

    arn:aws:iam::123456789012:role/S3Access
  • Peran yang terhubung dengan layanan:

    arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer
  • Peran layanan:

    arn:aws:iam::123456789012:role/service-role/QuickSightAction
  • Kebijakan terkelola:

    arn:aws:iam::123456789012:policy/ManageCredentialsPermissions
  • Profil instans yang dapat dikaitkan dengan EC2 instans Amazon:

    arn:aws:iam::123456789012:instance-profile/Webserver
  • Pengguna federasi yang diidentifikasi IAM sebagai “Paulo”:

    arn:aws:sts::123456789012:federated-user/Paulo
  • Sesi aktif seseorang yang mengambil peran "Akuntansi-Peran", dengan nama sesi peran "Mary":

    arn:aws:sts::123456789012:assumed-role/Accounting-Role/Mary
  • Merupakan sesi pemanggil sendiri saat digunakan sebagai sumber daya dalam API panggilan, seperti AWS STS SetContextAPI, yang beroperasi pada sesi panggilan:

    arn:aws:sts::123456789012:self
  • Perangkat autentikasi multi-faktor yang ditetapkan ke pengguna bernama Jorge:

    arn:aws:iam::123456789012:mfa/Jorge
  • Sertifikat server:

    arn:aws:iam::123456789012:server-certificate/ProdServerCert
  • Sertifikat server dengan jalur yang mencerminkan bagan organisasi:

    arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert
  • Penyedia identitas (SAMLdanOIDC):

    arn:aws:iam::123456789012:saml-provider/ADFSProvider arn:aws:iam::123456789012:oidc-provider/GoogleProvider arn:aws:iam::123456789012:oidc-provider/server.example.org
  • OIDCpenyedia identitas dengan jalur yang mencerminkan penyedia EKS OIDC identitas AmazonURL:

    arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/a1b2c3d4567890abcdefEXAMPLE11111

Penting lainnya ARN adalah pengguna rootARN. Meskipun ini bukan IAM sumber daya, Anda harus terbiasa dengan format iniARN. Ini sering digunakan dalam Principalelemen kebijakan berbasis sumber daya.

  • Akun AWS Menampilkan yang berikut ini:

    arn:aws:iam::123456789012:root

Contoh berikut menunjukkan kebijakan yang dapat Anda tetapkan kepada Richard untuk mengizinkannya mengelola kunci aksesnya. Perhatikan bahwa sumber daya adalah IAM pengguna Richard.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageRichardAccessKeys", "Effect": "Allow", "Action": [ "iam:*AccessKey*", "iam:GetUser" ], "Resource": "arn:aws:iam::*:user/division_abc/subdivision_xyz/Richard" }, { "Sid": "ListForConsole", "Effect": "Allow", "Action": "iam:ListUsers", "Resource": "*" } ] }
catatan

Saat Anda menggunakan ARNs untuk mengidentifikasi sumber daya dalam IAM kebijakan, Anda dapat menyertakan variabel kebijakan. Variabel kebijakan dapat menyertakan placeholder untuk informasi runtime (seperti nama pengguna) sebagai bagian dari. ARN Untuk informasi selengkapnya, silakan lihat Elemen kebijakan IAM: Variabel dan tanda

Menggunakan wildcard dan path di ARNs

Anda dapat menggunakan wildcard di resource bagian dari ARN untuk menentukan beberapa pengguna atau IAM grup atau kebijakan. Misalnya, untuk menentukan semua pengguna yang bekerja pada product_1234, Anda menggunakan:

arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/*

Jika Anda memiliki pengguna yang namanya dimulai dengan stringapp_, Anda dapat merujuk mereka semua dengan yang berikut iniARN.

arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/app_*

Untuk menentukan semua pengguna, IAM grup, atau kebijakan dalam Anda Akun AWS, gunakan wildcard setelah user/group/, atau policy/ bagian dariARN, masing-masing.

arn:aws:iam::123456789012:user/* arn:aws:iam::123456789012:group/* arn:aws:iam::123456789012:policy/*

Jika Anda menentukan berikut ini ARN untuk penggunaarn:aws:iam::111122223333:user/*, itu cocok dengan kedua contoh berikut.

arn:aws:iam::111122223333:user/JohnDoe arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe

Tetapi, jika Anda menentukan yang berikut ARN untuk pengguna arn:aws:iam::111122223333:user/division_abc* itu cocok dengan contoh kedua, tetapi bukan yang pertama.

arn:aws:iam::111122223333:user/JohnDoe arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe

Jangan gunakan wildcard diuser/,group/, atau policy/ bagian dari. ARN Misalnya, IAM tidak mengizinkan yang berikut:

arn:aws:iam::123456789012:u*
contoh Contoh penggunaan jalur dan ARNs untuk grup pengguna berbasis proyek

Jalur tidak dapat dibuat atau dimanipulasi di AWS Management Console. Untuk menggunakan jalur, Anda harus bekerja dengan sumber daya dengan menggunakan AWS API, the AWS CLI, atau Tools untuk Windows PowerShell.

Dalam contoh ini, Jules dalam grup pengguna Marketing_Admin membuat grup pengguna berbasis proyek dalam jalur /marketing/. Jules menugaskan pengguna dari berbagai bagian perusahaan ke grup pengguna. Contoh ini menggambarkan bahwa jalur pengguna tidak terkait dengan grup pengguna yang pengguna ikuti.

Grup pemasaran memiliki produk baru yang akan mereka luncurkan, sehingga Jules membuat grup pengguna baru dalam jalur /marketing/ yang disebut Widget_Launch. Jules kemudian menetapkan kebijakan berikut kepada grup pengguna, yang memberi grup pengguna akses ke objek di bagian example_bucket yang ditetapkan untuk peluncuran khusus ini.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::example_bucket/marketing/newproductlaunch/widget/*" }, { "Effect": "Allow", "Action": "s3:ListBucket*", "Resource": "arn:aws:s3:::example_bucket", "Condition": {"StringLike": {"s3:prefix": "marketing/newproductlaunch/widget/*"}} } ] }

Jules, kemudian menugaskan pengguna yang mengerjakan peluncuran ini ke grup pengguna. Ini termasuk Patricia dan Eli dari jalur /pemasaran/. Ini juga mencakup Chris dan Chloe dari jalur /pemasaran/, dan Alice serta Jim dari /legal/.

Pengidentifikasi unik

Saat IAM membuat pengguna, grup pengguna, peran, kebijakan, profil instance, atau sertifikat server, ia menetapkan ID unik untuk setiap sumber daya. ID unik terlihat seperti ini:

AIDAJQABLZS4A3QDU576Q

Untuk sebagian besar, Anda menggunakan nama yang ramah dan ARNsketika Anda bekerja dengan IAM sumber daya. Dengan begitu, Anda tidak perlu mengetahui ID unik untuk sumber daya tertentu. Namun, ID unik terkadang dapat berguna jika saat situasi tidak praktis untuk menggunakan nama yang ramah.

Salah satu contoh menggunakan kembali nama ramah di Anda Akun AWS. Dalam akun Anda, nama ramah untuk pengguna, grup pengguna, peran, atau kebijakan harus unik. Misalnya, Anda dapat membuat nama IAM penggunaJohn. Perusahaan Anda menggunakan Amazon S3 dan memiliki folder dengan bucket untuk setiap karyawan. IAMuser John adalah anggota grup IAM pengguna bernama User-S3-Access dengan izin yang memungkinkan pengguna mengakses hanya ke folder mereka sendiri di bucket. Untuk contoh cara membuat kebijakan berbasis identitas yang memungkinkan IAM pengguna mengakses objek bucket mereka sendiri di S3 menggunakan nama pengguna yang ramah, lihat. Amazon S3: Memungkinkan IAM pengguna mengakses direktori home S3 mereka, secara terprogram dan di konsol

Misalkan karyawan bernama John meninggalkan perusahaan Anda dan Anda menghapus nama IAM pengguna yang sesuaiJohn. Tapi kemudian karyawan lain bernama John mulai, dan Anda membuat IAM pengguna baru bernamaJohn. Anda menambahkan nama IAM pengguna baru John ke grup IAM pengguna yang adaUser-S3-Access. Jika kebijakan yang terkait dengan grup pengguna menentukan nama IAM pengguna yang ramahJohn, kebijakan tersebut mengizinkan John baru mengakses informasi yang ditinggalkan oleh John sebelumnya.

Secara umum, kami menyarankan Anda menentukan ARN sumber daya dalam kebijakan Anda, bukan ID uniknya. Namun, setiap IAM pengguna memiliki ID unik, bahkan jika Anda membuat IAM pengguna baru yang menggunakan kembali nama ramah yang Anda hapus sebelumnya. Dalam contoh, IAM pengguna lama John dan IAM pengguna baru John memiliki keunikan yang berbedaIDs. Anda dapat membuat kebijakan berbasis sumber daya yang memberikan akses dengan ID unik dan tidak hanya dengan nama pengguna. Melakukannya mengurangi kemungkinan bahwa Anda secara tidak sengaja dapat memberikan akses ke informasi yang seharusnya tidak dimiliki oleh seorang karyawan.

Contoh berikut menunjukkan bagaimana Anda dapat menentukan unik IDs dalam Principalelemen kebijakan berbasis sumber daya.

"Principal": { "AWS": [ "arn:aws:iam::111122223333:role/role-name", "AIDACKCEVSQ6C2EXAMPLE", "AROADBQP57FF2AEXAMPLE" }

Contoh berikut menunjukkan bagaimana Anda dapat menentukan unik IDs dalam Conditionelemen kebijakan menggunakan kunci kondisi global aws:userid.

"Condition": { "StringLike": { "aws:userId": [ "AIDACKCEVSQ6C2EXAMPLE", "AROADBQP57FF2AEXAMPLE:role-session-name", "AROA1234567890EXAMPLE:*", "111122223333" ] } }

Contoh lain di mana pengguna IDs dapat berguna adalah jika Anda memelihara database Anda sendiri (atau toko lain) informasi IAM pengguna atau peran. ID unik dapat memberikan pengenal unik untuk setiap IAM pengguna atau peran yang Anda buat. Ini adalah kasus ketika Anda memiliki IAM pengguna atau peran yang menggunakan kembali nama, seperti pada contoh sebelumnya.

Memahami prefiks ID yang unik

IAMmenggunakan awalan berikut untuk menunjukkan jenis sumber daya apa yang berlaku untuk setiap ID unik. Awalan dapat bervariasi berdasarkan kapan mereka dibuat.

Awalan Jenis sumber daya
ABIA AWS STS token pembawa layanan
ACCA Kredensial spesifik konteks

AGPA

Grup pengguna

AIDA

IAMpengguna

AIPA Profil EC2 contoh Amazon
AKIA Kunci akses
ANPA

Kebijakan terkelola

ANVA

Versi dalam kebijakan terkelola

APKA Kunci publik
AROA Peran
ASCA Sertifikat

ASIA

Kunci akses sementara (AWS STS) IDs menggunakan awalan ini, tetapi unik hanya dalam kombinasi dengan kunci akses rahasia dan token sesi.

Mendapatkan pengidentifikasi unik

ID unik untuk IAM sumber daya tidak tersedia di IAM konsol. Untuk mendapatkan ID unik, Anda dapat menggunakan AWS CLI perintah atau IAM API panggilan berikut.

AWS CLI:

IAM API: