View a markdown version of this page

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 pengenal berbeda untuk pengguna, grup IAM, 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 Anda menggunakan CloudFormation untuk membuat sumber daya, Anda dapat menentukan jalur untuk pengguna, grup IAM, 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 IAM berdasarkan jalur mereka. Pengguna dengan jalur berbeda dapat menggunakan sumber daya yang sama jika mereka telah diberikan izin ke 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 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 arn:aws:iam::aws:contextProvider/context-provider-name

Banyak dari contoh-contoh berikut mencakup jalur di bagian sumber daya ARN. Jalur tidak dapat dibuat atau dimanipulasi di Konsol Manajemen AWS. Untuk menggunakan jalur, Anda harus bekerja dengan sumber daya dengan menggunakan AWS API, AWS CLI, atau Tools untuk Windows PowerShell.

Contoh:

arn:aws:iam::123456789012:root arn:aws:iam::123456789012:user/John arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/Jane 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/John arn:aws:sts::123456789012:assumed-role/Accounting-Role/Jane arn:aws:sts::123456789012:self arn:aws:iam::123456789012:mfa/JaneMFA arn:aws:iam::123456789012:u2f/user/John/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 arn:aws:iam::aws:contextProvider/IdentityCenter

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

  • Pengguna IAM di akun:

    catatan

    Setiap nama pengguna IAM 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/John
  • Pengguna lain dengan jalur yang mencerminkan bagan organisasi:

    arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/Jane
  • 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
  • Prinsip pengguna AWS STS federasi yang diidentifikasi di IAM sebagai “Paulo”:

    arn:aws:sts::123456789012:federated-user/Paulo
  • Sesi aktif seseorang yang mengambil peran "Accounting-Role“, 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 SetContext API, 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 OIDC Amazon EKS:

    arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/a1b2c3d4567890abcdefEXAMPLE11111
  • Penyedia konteks ARN digunakan dengan propagasi identitas te AWS IAM Identity Center percaya, dari mana pernyataan konteks tepercaya dihasilkan:

    arn:aws:iam::aws:contextProvider/IdentityCenter

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

  • Men Akun AWS ampilkan sebagai berikut:

    arn:aws:iam::123456789012:root

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

JSON
{ "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 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 resource bagian ARN untuk menentukan beberapa pengguna atau grup IAM 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 ke mereka semua dengan ARN berikut.

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

Untuk menentukan semua pengguna, grup IAM, atau kebijakan di 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/John 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/John arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Jane

Jangan gunakan wildcard di user/, group/, atau policy/ bagian dari ARN. Misalnya, IAM tidak mengizinkan hal berikut:

arn:aws:iam::123456789012:u*
catatan

Bila Anda menentukan ARN yang tidak lengkap (satu dengan kurang dari enam bidang standar) dalam kebijakan berbasis identitas, AWS secara otomatis melengkapi ARN dengan menambahkan karakter wildcard (*) ke semua bidang yang hilang. Misalnya, menentukan arn:aws:sqs setara denganarn:aws:sqs:*:*:*, yang memberikan akses ke semua sumber daya Amazon Amazon SQS di semua wilayah dan akun. Namun, kebijakan sesi yang diteruskan ke AWS STS AssumeRole, AssumeRoleWithWebIdentity, dan AssumeRoleWithSAML permintaan, tidak mendukung ARN yang tidak lengkap. Menggunakan ARN yang tidak lengkap dalam kebijakan sesi akan mengakibatkan MalformedPolicyDocumentException kesalahan.

contoh Contoh penggunaan jalur dan ARN untuk grup pengguna berbasis proyek

Jalur tidak dapat dibuat atau dimanipulasi di Konsol Manajemen AWS. Untuk menggunakan jalur, Anda harus bekerja dengan sumber daya dengan menggunakan AWS API, AWS CLI, atau Alat untuk Windows PowerShell.

Dalam contoh ini, Jules dalam grup Marketing_Admin pengguna 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, jadi Jules membuat grup pengguna baru di 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.

JSON
{ "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 instans, atau sertifikat server, IAM menetapkan ID unik untuk setiap sumber daya. ID unik terlihat seperti ini:

AIDAJQABLZS4A3QDU576Q

Sebagian besar, Anda menggunakan nama ramah dan ARN saat 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. Di dalam akun Anda, nama ramah untuk pengguna, grup pengguna, peran, atau kebijakan harus unik. Misalnya, Anda dapat membuat pengguna IAM bernamaJohn. Perusahaan Anda menggunakan Amazon S3 dan memiliki folder dengan bucket untuk setiap karyawan. Pengguna IAM John adalah anggota grup pengguna IAM yang diberi nama User-S3-Access dengan izin yang memungkinkan pengguna mengakses hanya ke folder mereka sendiri di bucket. Untuk contoh bagaimana Anda dapat 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. Tetapi 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 mengakses informasi yang ditinggalkan oleh mantan John.

Secara umum, kami sarankan 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 berdasarkan ID unik dan bukan hanya berdasarkan 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 Principal elemen kebijakan berbasis sumber daya.

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

Contoh berikut menunjukkan cara menentukan ID unik dalam Condition elemen 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 penyimpanan lain) informasi pengguna atau peran IAM. ID unik dapat memberikan pengenal unik untuk setiap pengguna atau peran IAM yang Anda buat. Ini adalah kasus ketika Anda memiliki pengguna atau peran IAM 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 Context-specific kredensi

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: