Menggunakan kebijakan berbasis identitas (kebijakan IAM) untuk Amazon Route 53 - Amazon Route 53

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

Menggunakan kebijakan berbasis identitas (kebijakan IAM) untuk Amazon Route 53

Topik ini memberikan contoh kebijakan berbasis identitas yang menunjukkan cara administrator akun dapat melampirkan kebijakan izin ke identitas IAM dan dengan demikian memberikan izin untuk melakukan operasi di sumber daya Amazon Route 53.

penting

Kami menyarankan Anda untuk terlebih dahulu meninjau topik pendahuluan yang menjelaskan konsep dasar dan opsi untuk mengelola akses ke Route 53 sumber daya. Untuk informasi selengkapnya, lihat Gambaran umum pengelolaan izin akses untuk sumber daya Amazon Route 53.

catatan

Saat memberikan akses, zona yang dihosting dan VPC Amazon harus milik partisi yang sama. Partisi adalah sekelompok Wilayah AWS. Masing-masing Akun AWS dicakup ke satu partisi.

Berikut ini adalah partisi yang didukung:

  • aws - Wilayah AWS

  • aws-cn - Wilayah Tiongkok

  • aws-us-gov - AWS GovCloud (US) Region

Untuk informasi selengkapnya, lihat Access Management dan Amazon Route 53 endpoint dan kuota di Referensi AWS Umum.

Contoh berikut menunjukkan kebijakan izin. Sid, atau ID pernyataan, adalah opsional:

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "AllowPublicHostedZonePermissions", "Effect": "Allow", "Action": [ "route53:CreateHostedZone", "route53:UpdateHostedZoneComment", "route53:GetHostedZone", "route53:ListHostedZones", "route53:DeleteHostedZone", "route53:ChangeResourceRecordSets", "route53:ListResourceRecordSets", "route53:GetHostedZoneCount", "route53:ListHostedZonesByName" ], "Resource": "*" }, { "Sid" : "AllowHealthCheckPermissions", "Effect": "Allow", "Action": [ "route53:CreateHealthCheck", "route53:UpdateHealthCheck", "route53:GetHealthCheck", "route53:ListHealthChecks", "route53:DeleteHealthCheck", "route53:GetCheckerIpRanges", "route53:GetHealthCheckCount", "route53:GetHealthCheckStatus", "route53:GetHealthCheckLastFailureReason" ], "Resource": "*" } ] }

Kebijakan ini mencakup dua pernyataan:

  • Pernyataan pertama memberikan izin untuk tindakan yang diperlukan untuk membuat dan mengelola zona yang di-hosting publik dan catatan mereka. Karakter wildcard (*) di Amazon Resource Name (ARN) memberikan akses ke semua zona host yang dimiliki oleh akun saat ini. AWS

  • Pernyataan kedua memberikan izin untuk semua tindakan yang diperlukan untuk membuat dan mengelola pemeriksaan kondisi.

Untuk daftar tindakan dan ARN yang Anda tetapkan untuk memberikan atau menolak izin penggunaan setiap tindakan, lihat Izin API Amazon Route 53: Referensi tindakan, sumber daya, dan syarat.

Izin diperlukan untuk menggunakan konsol Amazon Route 53

Untuk memberikan akses penuh ke Amazon Route 53 Anda memberikan izin dalam kebijakan izin berikut:

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:*", "route53domains:*", "tag:*", "ssm:GetParametersByPath", "cloudfront:ListDistributions", "elasticloadbalancing:DescribeLoadBalancers", "elasticbeanstalk:DescribeEnvironments", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketWebsite", "ec2:DescribeRegions", "ec2:DescribeVpcs", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:ModifyNetworkInterfaceAttribute", "sns:ListTopics", "sns:ListSubscriptionsByTopic", "sns:CreateTopic", "kms:ListAliases", "kms:DescribeKey", "kms:CreateKey", "kms:CreateAlias", "kms:Sign", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics" ], "Resource":"*" }, { "Effect": "Allow", "Action": "apigateway:GET", "Resource": "arn:aws:apigateway:*::/domainnames" } ] }

Inilah mengapa izin diperlukan:

route53:*

Memungkinkan Anda melakukan semua tindakan Route 53 kecuali hal berikut:

  • Membuat dan memperbarui catatan alias yang nilai Alias Target adalah CloudFront distribusi, penyeimbang beban Elastic Load Balancing, lingkungan Elastic Beanstalk, atau bucket Amazon S3. (Dengan izin ini, Anda dapat membuat catatan alias yang nilai Target Alias adalah catatan lain di zona yang di-hosting yang sama.)

  • Bekerja dengan zona pribadi yang di-hosting.

  • Bekerja dengan domain.

  • Buat, hapus, dan lihat CloudWatch alarm.

  • Render CloudWatch metrik di konsol Route 53.

route53domains:*

Memungkinkan Anda bekerja dengan domain.

penting

Jika Anda membuat daftar tindakan route53 secara individual, Anda harus memasukkan route53:CreateHostedZone untuk bekerja dengan domain. Ketika Anda mendaftar domain, zona yang di-hosting dibuat pada saat yang sama, sehingga kebijakan yang mencakup izin untuk mendaftar domain juga memerlukan izin untuk membuat zona yang di-hosting.

Untuk pendaftaran domain, Route 53 tidak mendukung pemberian atau menolak izin untuk sumber daya individu.

route53resolver:*

Memungkinkan Anda bekerja dengan Route 53 Resolver.

ssm:GetParametersByPath

Memungkinkan Anda mengambil Wilayah yang tersedia untuk umum saat Anda membuat catatan alias baru, zona yang dihosting pribadi, dan pemeriksaan kesehatan.

cloudfront:ListDistributions

Memungkinkan Anda membuat dan memperbarui catatan alias yang nilai Alias Target adalah CloudFront distribusi.

Izin ini tidak diperlukan jika Anda tidak menggunakan Route 53 konsol. Route 53 menggunakannya hanya untuk mendapatkan daftar distribusi untuk ditampilkan di konsol.

elasticloadbalancing:DescribeLoadBalancers

Memungkinkan Anda membuat dan memperbarui catatan alias yang nilai Target Alias adalah penyeimbang beban ELB.

Izin ini tidak diperlukan jika Anda tidak menggunakan Route 53 konsol. Route 53 menggunakannya hanya untuk mendapatkan daftar penyeimbang beban untuk ditampilkan di konsol.

elasticbeanstalk:DescribeEnvironments

Memungkinkan Anda membuat dan memperbarui catatan alias ketika nilai Target Alias adalah lingkungan Elastic Beanstalk.

Izin ini tidak diperlukan jika Anda tidak menggunakan Route 53 konsol. Route 53 menggunakannya hanya untuk mendapatkan daftar lingkungan untuk ditampilkan di konsol.

s3:ListAllMyBuckets, s3:GetBucketLocation, dan s3:GetBucketWebsite

Memungkinkan Anda membuat dan memperbarui catatan alias di mana nilai Target Alias adalah bucket Amazon S3. (Anda dapat membuat alias ke bucket Amazon S3 hanya jika bucket dikonfigurasi sebagai titik akhir situs web; s3:GetBucketWebsite mendapatkan informasi konfigurasi yang diperlukan.)

Izin ini tidak diperlukan jika Anda tidak menggunakan Route 53 konsol. Route 53 menggunakannya hanya untuk mendapatkan daftar bucket untuk ditampilkan di konsol.

ec2:DescribeVpcs dan ec2:DescribeRegions

Memungkinkan Anda bekerja dengan pribadi yang di-hosting.

Semua ec2 terdaftar

Memungkinkan Anda bekerja dengan Route 53 Resolver.

sns:ListTopics, sns:ListSubscriptionsByTopic, sns:CreateTopic, cloudwatch:DescribeAlarms, cloudwatch:PutMetricAlarm, cloudwatch:DeleteAlarms

Memungkinkan Anda membuat, menghapus, dan melihat CloudWatch alarm.

cloudwatch:GetMetricStatistics

Memungkinkan Anda membuat pemeriksaan kesehatan CloudWatch metrik.

Izin ini tidak diperlukan jika Anda tidak menggunakan Route 53 konsol. Route 53 menggunakannya hanya untuk mendapatkan statistik untuk ditampilkan di konsol.

apigateway:GET

Memungkinkan Anda membuat dan memperbarui catatan alias yang nilai Target Alias adalah API Amazon API Gateway.

Izin ini tidak diperlukan jika Anda tidak menggunakan konsol Route 53. Route 53 menggunakannya hanya untuk mendapatkan daftar API untuk ditampilkan di konsol.

kms:*

Memungkinkan Anda bekerja sama AWS KMS untuk mengaktifkan penandatanganan DNSSEC.

Contoh izin untuk pemilik catatan domain

Dengan izin kumpulan catatan sumber daya, Anda dapat mengatur izin terperinci yang membatasi apa yang dapat diperbarui atau AWS dimodifikasi pengguna. Untuk informasi selengkapnya, lihat Menggunakan kondisi kebijakan IAM untuk kontrol akses berbutir halus untuk mengelola kumpulan catatan sumber daya.

Dalam beberapa skenario, pemilik zona yang di-hosting mungkin bertanggung jawab untuk manajemen keseluruhan zona yang di-hosting, sementara orang lain dalam organisasi bertanggung jawab untuk subset dari tugas-tugas tersebut. Pemilik zona yang di-hosting yang telah mengaktifkan penandatanganan DNSSEC, misalnya, mungkin ingin membuat kebijakan IAM yang mencakup izin untuk orang lain untuk menambah dan menghapus Catatan Kumpulan Sumber Daya (Resource Set Recods/RR) di zona yang di-hosting, di antara tugas-tugas lain. Izin khusus yang dipilih pemilik zona yang di-hosting untuk mengaktifkan pemilik catatan atau orang lain akan bergantung pada kebijakan organisasi mereka.

Berikut ini adalah contoh kebijakan IAM yang memungkinkan pemilik rekaman untuk membuat modifikasi RR, lalu lintas kebijakan, dan pemeriksaan kondisi. Pemilik rekaman dengan kebijakan ini tidak diperbolehkan untuk melakukan operasi tingkat zona, seperti membuat atau menghapus zona, mengaktifkan atau menonaktifkan permintaan pembuatan log, membuat atau menghapus kumpulan delegasi dapat digunakan kembali, atau mengubah pengaturan DNSSEC.

{ "Sid": "Do not allow zone-level modification ", "Effect": "Allow", "Action": [ "route53:ChangeResourceRecordSets", "route53:CreateTrafficPolicy", "route53:DeleteTrafficPolicy", "route53:CreateTrafficPolicyInstance", "route53:CreateTrafficPolicyVersion", "route53:UpdateTrafficPolicyInstance", "route53:UpdateTrafficPolicyComment", "route53:DeleteTrafficPolicyInstance", "route53:CreateHealthCheck", "route53:UpdateHealthCheck", "route53:DeleteHealthCheck", "route53:List*", "route53:Get*" ], "Resource": [ "*" ] }

Route 53 izin kunci terkelola pelanggan yang diperlukan untuk penandatanganan DNSSEC

Saat Anda mengaktifkan penandatanganan DNSSEC untuk Route 53, Route 53 membuat kunci penandatanganan kunci (KSK) berdasarkan kunci yang dikelola pelanggan di (). AWS Key Management Service AWS KMS Anda dapat menggunakan kunci terkelola pelanggan yang sudah ada yang mendukung penandatanganan DNSSEC atau membuat yang baru. Route 53 harus memiliki izin untuk mengakses kunci yang dikelola pelanggan Anda sehingga dapat membuat KSK untuk Anda.

Untuk mengaktifkan Route 53 mengakses kunci terkelola pelanggan Anda, pastikan kebijakan kunci terkelola pelanggan Anda berisi pernyataan berikut:

{ "Sid": "Allow Route 53 DNSSEC Service", "Effect": "Allow", "Principal": { "Service": "dnssec-route53.amazonaws.com" }, "Action": ["kms:DescribeKey", "kms:GetPublicKey", "kms:Sign"], "Resource": "*" }, { "Sid": "Allow Route 53 DNSSEC to CreateGrant", "Effect": "Allow", "Principal": { "Service": "dnssec-route53.amazonaws.com" }, "Action": ["kms:CreateGrant"], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

Masalah deputi yang membingungkan adalah masalah keamanan di mana entitas tanpa izin untuk suatu tindakan dapat memaksa entitas yang lebih istimewa untuk melakukannya. Untuk melindungi Anda AWS KMS dari itu, Anda dapat secara opsional membatasi izin yang dimiliki layanan ke sumber daya dalam kebijakan berbasis sumber daya dengan menyediakan kombinasi aws:SourceAccount dan aws:SourceArn ketentuan (keduanya atau satu). aws:SourceAccountadalah ID AWS akun pemilik zona yang dihosting. aws:SourceArnadalah ARN dari zona yang dihosting.

Berikut ini adalah dua contoh izin yang dapat Anda tambahkan:

{ "Sid": "Allow Route 53 DNSSEC Service", … "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:route53:::hostedzone/HOSTED_ZONE_ID" } } },

- Atau -

{ "Sid": "Allow Route 53 DNSSEC Service", … "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["1111-2222-3333","4444-5555-6666"] }, "ArnLike": { "aws:SourceArn": "arn:aws:route53:::hostedzone/*" } } },

Untuk informasi selengkapnya, lihat Masalah confused deputy di Panduan Pengguna IAM.

Contoh kebijakan yang dikelola pelanggan

Anda dapat membuat kebijakan IAM khusus untuk mengizinkan izin tindakan Route 53. Anda dapat melampirkan kebijakan khusus ini ke grup IAM yang memerlukan izin yang ditentukan. Kebijakan ini berfungsi saat Anda menggunakan API Route 53, AWS SDK, atau AWS CLI. Contoh-contoh berikut menunjukkan izin untuk beberapa kasus penggunaan umum. Untuk kebijakan yang memberi pengguna akses penuh ke Route 53, lihat Izin diperlukan untuk menggunakan konsol Amazon Route 53.

Contoh 1: Memungkinkan akses baca ke semua zona yang di-hosting

Kebijakan izin berikut memberikan izin pengguna untuk membuat daftar semua zona yang di-hosting dan melihat semua catatan di zona yang di-hosting.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53:GetHostedZone", "route53:ListResourceRecordSets" ], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:ListHostedZones"], "Resource":"*" } ] }

Contoh 2: Memungkinkan pembuatan dan penghapusan zona yang di-hosting

Kebijakan izin berikut memungkinkan pengguna untuk membuat dan menghapus zona yang di-hosting, dan melacak kemajuan perubahan.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":["route53:CreateHostedZone"], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:DeleteHostedZone"], "Resource":"*" }, { "Effect":"Allow", "Action":["route53:GetChange"], "Resource":"*" } ] }

Contoh 3: Memungkinkan akses penuh ke semua domain (zona yang di-hosting publik saja)

Kebijakan izin berikut memungkinkan pengguna untuk melakukan semua tindakan pada pendaftaran domain, termasuk izin untuk mendaftarkan domain dan membuat zona yang di-hosting.

{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "route53domains:*", "route53:CreateHostedZone" ], "Resource":"*" } ] }

Ketika Anda mendaftar domain, zona yang di-hosting dibuat pada saat yang sama, sehingga kebijakan yang mencakup izin untuk mendaftar domain juga memerlukan izin untuk membuat zona yang di-hosting. (Untuk pendaftaran domain, Route 53 tidak mendukung pemberian izin untuk sumber daya individu.)

Untuk informasi tentang izin yang diperlukan untuk bekerja dengan zona yang di-hosting pribadi, lihat Izin diperlukan untuk menggunakan konsol Amazon Route 53.

Contoh 4: Memungkinkan pembuatan titik akhir Route 53 Resolver inbound dan outbound

Kebijakan izin berikut memungkinkan pengguna untuk menggunakan konsol Route 53 untuk membuat titik akhir Resolver inbound dan outbound.

Beberapa izin ini diperlukan hanya untuk membuat titik akhir di konsol. Anda dapat menghilangkan izin ini jika Anda ingin memberikan izin hanya untuk membuat titik akhir inbound dan outbound secara terprogram:

  • route53resolver:ListResolverEndpoints memungkinkan pengguna melihat daftar titik akhir inbound atau outbound sehingga mereka dapat memverifikasi bahwa titik akhir telah dibuat.

  • DescribeAvailabilityZones diperlukan untuk menampilkan daftar Availability Zone.

  • DescribeVpcs diperlukan untuk menampilkan daftar VPC.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "route53resolver:CreateResolverEndpoint", "route53resolver:ListResolverEndpoints", "ec2:CreateNetworkInterface", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" } ] }