Pengidentifikasi IAM - 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.

Pengidentifikasi IAM

IAM menggunakan beberapa pengidentifikasi berbeda untuk pengguna, grup pengguna, 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 atau AWS Command Line Interface (AWS CLI) untuk membuat sumber daya IAM, 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. Kemudian, Anda dapat membuat kebijakan yang memungkinkan semua pengguna di jalur tersebut mengakses API simulator kebijakan. Untuk melihat kebijakan ini, lihat IAM: Akses API simulator kebijakan berdasarkan jalur pengguna. Untuk informasi tentang cara menentukan nama yang mudah diingat, lihat dokumentasi API Pengguna. Untuk contoh-contoh tambahan tentang bagaimana Anda mungkin menggunakan jalur, lihat ARN IAM.

Saat digunakan AWS CloudFormation untuk membuat sumber daya, Anda dapat menentukan jalur untuk pengguna, grup pengguna, 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 jalur 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. IAM tidak memberlakukan batasan apa pun antara pengguna atau grup pengguna 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 sumber daya IAM dalam AWS akun terbatas. Untuk informasi selengkapnya, lihat IAM dan AWS STS kuota.

ARN IAM

Sebagian besar sumber daya memiliki nama yang ramah misalnya, nama pengguna Bob atau grup pengguna bernamaDevelopers. Namun, bahasa kebijakan izin mengharuskan Anda untuk menentukan 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. Sumber daya IAM selalu digunakaniam.

  • regionmengidentifikasi Wilayah sumber daya. Untuk sumber daya IAM, ini selalu dibiarkan kosong.

  • accountmenentukan Akun AWS ID tanpa tanda hubung.

  • resourcemengidentifikasi sumber daya tertentu dengan nama.

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

Sintaks:

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-contoh berikut mencakup jalur di bagian sumber daya ARN. 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.

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 format ARN untuk berbagai jenis IAM dan sumber daya. AWS STS

  • Pengguna IAM di akun:

    catatan

    Setiap nama pengguna IAM 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 pengguna IAM 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 instans Amazon EC2:

    arn:aws:iam::123456789012:instance-profile/Webserver
  • Seorang pengguna federasi diidentifikasi dalam 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 panggilan API, seperti AWS STS SetContextAPI, yang beroperasi pada sesi pemanggilan:

    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 (SAML dan OIDC):

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

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

ARN penting lainnya adalah ARN pengguna akar. Meskipun ini bukan sumber daya IAM, Anda harus familiar dengan format ARN ini. Ini sering digunakan dalam Principalelemen kebijakan berbasis sumber daya.

  • Akun AWS Menampilkan 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 Richard, pengguna IAM.

{ "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

Bila Anda menggunakan ARN untuk mengidentifikasi sumber daya dalam kebijakan IAM, Anda dapat menyertakan variabel kebijakan. Variabel kebijakan dapat mencakup placeholder untuk informasi waktu aktif (seperti nama pengguna) sebagai bagian dari ARN. Untuk informasi selengkapnya, lihat Elemen kebijakan IAM: Variabel dan tag

Menggunakan wildcard dan jalur di ARN

Anda dapat menggunakan wildcard di bagian sumber daya ARN untuk menentukan beberapa pengguna atau grup pengguna atau pun 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 ARN berikut.

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

Untuk menentukan semua pengguna, grup pengguna, atau kebijakan dalam Anda Akun AWS, gunakan wildcard setelahuser/,group/, atau policy/ bagian dari ARN, masing-masing.

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

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

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

Namun, jika Anda menentukan ARN berikut untuk penggunaarn:aws:iam::111122223333:user/division_abc*, ini 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 di user/, group/, atau policy/ bagian dari ARN. Misalnya, IAM tidak mengizinkan hal berikut:

arn:aws:iam::123456789012:u*
contoh Contoh penggunaan jalur dan ARN 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

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

AIDAJQABLZS4A3QDU576Q

Sebagian besar, Anda menggunakan nama dan ARN yang ramah saat Anda bekerja dengan sumber daya IAM. 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 John pengguna IAM. Perusahaan Anda menggunakan Amazon S3 dan memiliki folder dengan bucket untuk setiap karyawan. Pengguna IAM John adalah anggota grup pengguna IAM 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 pengguna IAM mengakses objek bucket mereka sendiri di S3 menggunakan nama pengguna yang ramah, lihat. Amazon S3: Memungkinkan pengguna IAM mengakses direktori home S3 mereka, secara terprogram dan di konsol

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

Secara umum, kami menyarankan Anda menentukan ARN untuk sumber daya dalam kebijakan Anda, bukan ID uniknya. Namun, setiap pengguna IAM memiliki ID unik, bahkan jika Anda membuat pengguna IAM baru yang menggunakan kembali nama ramah yang Anda hapus sebelumnya. Dalam contoh, pengguna IAM lama John dan pengguna IAM baru John memiliki ID unik yang berbeda. 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 cara menentukan ID unik dalam Principalelemen kebijakan berbasis sumber daya.

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

Contoh berikut menunjukkan cara menentukan ID unik dalam Conditionelemen kebijakan menggunakan kunci kondisi global aws:userid.

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

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

Memahami prefiks ID yang unik

IAM menggunakan awalan berikut untuk menunjukkan jenis sumber daya yang masing-masing ID unik berlaku. Awalan dapat bervariasi berdasarkan kapan mereka dibuat.

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

AGPA

Grup pengguna

AIDA

Pengguna IAM

AIPA Profil instans Amazon EC2
AKIA Access key
ANPA

Kebijakan terkelola

ANVA

Versi dalam kebijakan terkelola

APKA Kunci publik
AROA Peran
ASCA Sertifikat

ASIA

ID access key sementara (AWS STS) menggunakan prefiks ini, tetapi hanya unik dalam kombinasi dengan secret access key dan token sesi.

Mendapatkan pengidentifikasi unik

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

AWS CLI:

API IAM: