Contoh kebijakan berbasis identitas Amazon Connect - Amazon Connect

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

Contoh kebijakan berbasis identitas Amazon Connect

Secara default, entitas IAM tidak memiliki izin untuk membuat atau memodifikasi sumber daya Amazon Connect. Mereka juga tidak dapat melakukan tugas menggunakan AWS Management Console, AWS CLI, atau AWS API. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepada entitas IAM untuk melakukan operasi API tertentu pada sumber daya tertentu yang mereka butuhkan. Administrator IAM kemudian harus melampirkan kebijakan tersebut ke entitas IAM yang memerlukan izin tersebut.

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumen kebijakan JSON ini, lihat Membuat Kebijakan pada Tab JSON dalam Panduan Pengguna IAM.

Praktik terbaik kebijakan

Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus sumber daya Amazon Connect di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:

  • Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin kepada pengguna dan beban kerja Anda, gunakan kebijakan AWS terkelola yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat Kebijakan yang dikelola AWS atau Kebijakan yang dikelola AWS untuk fungsi tugas dalam Panduan Pengguna IAM.

  • Menerapkan izin dengan hak akses paling rendah – Ketika Anda menetapkan izin dengan kebijakan IAM, hanya berikan izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai izin dengan hak akses paling rendah. Untuk informasi selengkapnya tentang cara menggunakan IAM untuk mengajukan izin, lihat Kebijakan dan izin dalam IAM dalam Panduan Pengguna IAM.

  • Gunakan kondisi dalam kebijakan IAM untuk membatasi akses lebih lanjut – Anda dapat menambahkan suatu kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Sebagai contoh, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan SSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti AWS CloudFormation. Untuk informasi selengkapnya, lihat Elemen kebijakan JSON IAM: Kondisi dalam Panduan Pengguna IAM.

  • Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional – IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat Validasi kebijakan IAM Access Analyzer dalam Panduan Pengguna IAM.

  • Memerlukan otentikasi multi-faktor (MFA) - Jika Anda memiliki skenario yang mengharuskan pengguna IAM atau pengguna root di Anda, Akun AWS aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA ketika operasi API dipanggil, tambahkan kondisi MFA pada kebijakan Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi akses API yang dilindungi MFA dalam Panduan Pengguna IAM.

Untuk informasi selengkapnya tentang praktik terbaik dalam IAM, lihat Praktik terbaik keamanan dalam IAM dalam Panduan Pengguna IAM.

Izinkan pengguna IAM untuk melihat izin mereka sendiri

Contoh ini menunjukkan cara membuat kebijakan yang mengizinkan pengguna IAM melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau menggunakan API atau secara terprogram. AWS CLI AWS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Berikan izin “Lihat Pengguna”

Saat membuat pengguna atau grup di AWS akun, Anda dapat mengaitkan kebijakan IAM dengan grup atau pengguna tersebut, yang menentukan izin yang ingin Anda berikan.

Misalnya, bayangkan Anda memiliki sekelompok developer pemula. Anda dapat membuat grup IAM bernamaJunior application developers, dan menyertakan semua pengembang entry-level. Kemudian, kaitkan kebijakan dengan grup yang memberi mereka izin untuk melihat pengguna Amazon Connect. Dalam skenario ini, Anda mungkin memiliki kebijakan seperti contoh berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "connect:DescribeUser", "connect:ListUsers" ], "Resource": "*" } ] }

Kebijakan sampel ini memberikan izin untuk tindakan API yang tercantum dalam elemen. Action

catatan

Jika Anda tidak menentukan ARN atau ID pengguna dalam pernyataan Anda, Anda juga harus memberikan izin untuk menggunakan semua sumber daya untuk tindakan menggunakan wildcard * untuk elemen tersebut. Resource

Memungkinkan pengguna untuk berintegrasi dengan aplikasi eksternal

Contoh ini menunjukkan cara membuat kebijakan yang memungkinkan pengguna berinteraksi dengan integrasi aplikasi eksternal mereka.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllAppIntegrationsActions", "Effect": "Allow", "Action": [ "app-integrations:ListEventIntegrations", "app-integrations:CreateEventIntegration", "app-integrations:GetEventIntegration", "app-integrations:UpdateEventIntegration", "app-integrations:DeleteEventIntegration", "app-integrations:ListDataIntegrations", "app-integrations:CreateDataIntegration", "app-integrations:GetDataIntegration", "app-integrations:UpdateDataIntegration", "app-integartions:DeleteDataIntegration" ], "Resource": "*" } ] }

Jelaskan dan perbarui pengguna Amazon Connect berdasarkan tag

Dalam kebijakan IAM, Anda dapat secara opsional menentukan kondisi yang mengontrol kapan kebijakan diberlakukan. Misalnya, Anda dapat menentukan kebijakan yang memungkinkan pengguna hanya memperbarui pengguna Amazon Connect yang bekerja di lingkungan pengujian.

Anda dapat menentukan beberapa kondisi yang khusus untuk Amazon Connect, dan menentukan kondisi lain yang berlaku untuk semua kondisi AWS. Untuk informasi selengkapnya dan daftar kondisi di seluruh AWS, lihat Kondisi dalam Referensi Elemen Kebijakan IAM JSON di Panduan Pengguna IAM.

Kebijakan contoh berikut memungkinkan tindakan “deskripsikan” dan “perbarui” untuk pengguna dengan tag tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "connect:DescribeUser", "connect:UpdateUser*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Department": "Test" } } } ] }

Kebijakan ini memungkinkan “deskripsikan pengguna” dan “perbarui pengguna” tetapi hanya untuk pengguna Amazon Connect yang diberi tag “Department: Test” di mana “Department” adalah kunci tag dan “Test” adalah nilai tag.

Buat pengguna Amazon Connect berdasarkan tag

Kebijakan contoh berikut memungkinkan tindakan buat untuk pengguna dengan tag permintaan tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "connect:CreateUser", "connect:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/Owner": "TeamA" } } } ] }

Kebijakan ini memungkinkan “buat pengguna” dan “sumber daya tag” tetapi tag “Pemilik: TeaMa” harus ada dalam permintaan.

Membuat dan melihat AppIntegrations sumber daya Amazon

Kebijakan sampel berikut memungkinkan integrasi peristiwa dibuat, dicantumkan, dan diambil.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "app-integrations:CreateEventIntegration", "app-integrations:GetEventIntegration", "app-integrations::ListEventIntegrations", ], "Resource": "*" } ] }

Membuat dan melihat Amazon Q di Connect Assistants

Kebijakan contoh berikut memungkinkan asisten Amazon Q di Connect dibuat, dicantumkan, diambil, dan dihapus.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wisdom:CreateContent", "wisdom:DeleteContent", "wisdom:CreateKnowledgeBase", "wisdom:GetAssistant", "wisdom:GetKnowledgeBase", "wisdom:GetContent", "wisdom:GetRecommendations", "wisdom:GetSession", "wisdom:NotifyRecommendationsReceived", "wisdom:QueryAssistant", "wisdom:StartContentUpload", "wisdom:UpdateContent", "wisdom:UntagResource", "wisdom:TagResource", "wisdom:CreateSession" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/AmazonConnectEnabled": "True" } } }, { "Action": [ "wisdom:ListAssistants", "wisdom:ListKnowledgeBases" ], "Effect": "Allow", "Resource": "*" } ] }

Mengelola sumber daya kampanye keluar

Izin orientasi: Kebijakan contoh berikut memungkinkan instans Amazon Connect untuk di-onboard ke kampanye keluar.

"Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "connect:DescribeInstance" ], "Resource": [ "arn:aws:connect:region:account-id:instance/instance-id" ] }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "iam:CreateServiceLinkedRole", "iam:AttachRolePolicy", "iam:PutRolePolicy", "ds:DescribeDirectories", "connect-campaigns:StartInstanceOnboardingJob", "connect-campaigns:GetConnectInstanceConfig", "connect-campaigns:GetInstanceOnboardingJobStatus", "connect-campaigns:DeleteInstanceOnboardingJob", "connect:DescribeInstanceAttribute", "connect:UpdateInstanceAttribute", "connect:ListInstances", "kms:ListAliases" ], "Resource": "*" }

Untuk menonaktifkan kampanye keluar untuk sebuah instance, tambahkan izin berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:RetireGrant" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "events:DeleteRule", "events:RemoveTargets", "events:DescribeRule", "iam:DeleteRolePolicy", "events:ListTargetsByRule", "iam:DeleteServiceLinkedRole", "connect-campaigns:DeleteConnectInstanceConfig" ], "Resource": "*" } ]

Izin manajemen: Kebijakan contoh berikut memungkinkan semua operasi baca dan tulis pada kampanye keluar.

{ "Sid": "AllowConnectCampaignsOperations", "Effect": "Allow", "Action": [ "connect-campaigns:CreateCampaign", "connect-campaigns:DeleteCampaign", "connect-campaigns:DescribeCampaign", "connect-campaigns:UpdateCampaignName", "connect-campaigns:GetCampaignState" "connect-campaigns:UpdateOutboundCallConfig", "connect-campaigns:UpdateDialerConfig", "connect-campaigns:PauseCampaign", "connect-campaigns:ResumeCampaign", "connect-campaigns:StopCampaign", "connect-campaigns:GetCampaignStateBatch", "connect-campaigns:ListCampaigns" ], "Resource": "*" }

ReadOnly izin: Kebijakan contoh berikut memungkinkan akses hanya-baca ke kampanye.

{ "Sid": "AllowConnectCampaignsReadOnlyOperations", "Effect": "Allow", "Action": [ "connect-campaigns:DescribeCampaign", "connect-campaigns:GetCampaignState", "connect-campaigns:GetCampaignStateBatch", "connect-campaigns:ListCampaigns" ], "Resource": "*", }

Izin berbasis tag: Kebijakan contoh berikut membatasi akses ke kampanye yang terintegrasi dengan instans Amazon Connect tertentu menggunakan tag. Lebih banyak izin dapat ditambahkan berdasarkan kasus penggunaan.

{ "Sid": "AllowConnectCampaignsOperations", "Effect": "Allow", "Action": [ "connect-campaigns:DescribeCampaign", "connect-campaigns:GetCampaignState" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/owner": "arn:aws:connect:region:customer_account_id:instance/connect_instance_id" } } }
catatan

connect-campaigns:ListCampaignsdan connect-campaigns:GetCampaignStateBatch operasi tidak dapat dibatasi oleh Tag.