Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh kebijakan berbasis identitas untuk Amazon CloudFront
Secara default, pengguna dan peran tidak memiliki izin untuk membuat atau memodifikasi CloudFront sumber daya. Mereka juga tidak dapat melakukan tugas dengan menggunakan AWS Management Console, AWS Command Line Interface (AWS CLI), atau AWS API. Untuk memberikan izin kepada pengguna untuk melakukan tindakan pada sumber daya yang mereka butuhkan, IAM administrator dapat membuat IAM kebijakan. Administrator kemudian dapat menambahkan IAM kebijakan ke peran, dan pengguna dapat mengambil peran.
Untuk mempelajari cara membuat kebijakan IAM berbasis identitas menggunakan contoh dokumen kebijakan ini, lihat Membuat JSON IAM kebijakan (konsol) di Panduan Pengguna. IAM
Untuk detail tentang tindakan dan jenis sumber daya yang ditentukan oleh CloudFront, termasuk format ARNs untuk setiap jenis sumber daya, lihat Kunci tindakan, sumber daya, dan kondisi untuk Amazon CloudFront di Referensi Otorisasi Layanan.
Topik
Praktik terbaik kebijakan
Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus CloudFront sumber daya 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 AWSAWS terkelola atau kebijakan terkelola untuk fungsi pekerjaan di Panduan IAM Pengguna.
-
Menerapkan izin hak istimewa paling sedikit — Saat Anda menetapkan izin dengan IAM kebijakan, berikan hanya 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 penggunaan IAM untuk menerapkan izin, lihat Kebijakan dan izin IAM di IAM Panduan Pengguna.
-
Gunakan ketentuan dalam IAM kebijakan untuk membatasi akses lebih lanjut — Anda dapat menambahkan kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Misalnya, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakanSSL. 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 IAM JSON kebijakan: Kondisi dalam Panduan IAM Pengguna.
-
Gunakan IAM Access Analyzer untuk memvalidasi IAM kebijakan Anda guna memastikan izin yang aman dan fungsional — IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan tersebut mematuhi bahasa IAM kebijakan () JSON dan praktik terbaik. IAM IAMAccess 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 Memvalidasi kebijakan dengan IAM Access Analyzer di IAMPanduan Pengguna.
-
Memerlukan otentikasi multi-faktor (MFA) — Jika Anda memiliki skenario yang mengharuskan IAM pengguna atau pengguna root di dalam Anda Akun AWS, aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA kapan API operasi dipanggil, tambahkan MFA kondisi ke kebijakan Anda. Untuk informasi selengkapnya, lihat APIAkses aman dengan MFA di Panduan IAM Pengguna.
Untuk informasi selengkapnya tentang praktik terbaik diIAM, lihat Praktik terbaik keamanan IAM di Panduan IAM Pengguna.
Mengizinkan pengguna melihat izin mereka sendiri
Contoh ini menunjukkan cara Anda membuat kebijakan yang memungkinkan IAM pengguna melihat kebijakan sebaris dan terkelola yang dilampirkan pada identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau secara terprogram menggunakan atau. AWS CLI AWS API
{ "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": "*" } ] }
Izin untuk mengakses CloudFront secara terprogram
Berikut ini menunjukkan kebijakan izin. Sid
, atau ID pernyataan, bersifat opsional.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllCloudFrontPermissions", "Effect": "Allow", "Action": ["cloudfront:*"], "Resource": "*" } ] }
Kebijakan ini memberikan izin untuk melakukan semua CloudFront operasi, yang cukup untuk mengakses CloudFront secara terprogram. Jika Anda menggunakan konsol untuk mengakses CloudFront, lihatIzin diperlukan untuk menggunakan konsol CloudFront .
Untuk daftar tindakan dan ARN yang Anda tentukan untuk memberikan atau menolak izin untuk menggunakan setiap tindakan, lihat Tindakan, sumber daya, dan kunci kondisi untuk Amazon CloudFront di Referensi Otorisasi Layanan.
Izin diperlukan untuk menggunakan konsol CloudFront
Untuk memberikan akses penuh ke CloudFront konsol, Anda memberikan izin dalam kebijakan izin berikut:
{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:*", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] }
Inilah mengapa izin diperlukan:
acm:ListCertificates
-
Saat Anda membuat dan memperbarui distribusi menggunakan CloudFront konsol dan Anda ingin mengonfigurasi CloudFront untuk memerlukan HTTPS antara penampil dan CloudFront atau antara CloudFront dan asal, memungkinkan Anda melihat daftar ACM sertifikat.
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
cloudfront:*
-
Memungkinkan Anda melakukan semua CloudFront tindakan.
cloudwatch:DescribeAlarms
dancloudwatch:PutMetricAlarm
-
Memungkinkan Anda membuat dan melihat CloudWatch alarm di CloudFront konsol. Lihat juga
sns:ListSubscriptionsByTopic
dansns:ListTopics
.Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
cloudwatch:GetMetricStatistics
-
Mari kita CloudFront membuat CloudWatch metrik di CloudFront konsol.
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
elasticloadbalancing:DescribeLoadBalancers
-
Saat membuat dan memperbarui distribusi, Anda bisa melihat daftar load balancer Elastic Load Balancing dalam daftar asal yang tersedia.
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
iam:ListServerCertificates
-
Saat Anda membuat dan memperbarui distribusi menggunakan CloudFront konsol dan Anda ingin mengonfigurasi CloudFront untuk memerlukan HTTPS antara penampil dan CloudFront atau antara CloudFront dan asal, memungkinkan Anda melihat daftar sertifikat di penyimpanan IAM sertifikat.
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
s3:ListAllMyBuckets
-
Saat Anda membuat dan memperbarui distribusi, memungkinkan Anda melakukan operasi berikut:
-
Lihat daftar bucket S3 dalam daftar asal yang tersedia
-
Lihat daftar bucket S3 yang dapat Anda gunakan untuk menyimpan log akses
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
-
S3:PutBucketPolicy
-
Saat membuat atau memperbarui distribusi yang membatasi akses ke bucket S3, pengguna dapat memperbarui kebijakan bucket untuk memberikan akses ke identitas akses asal. CloudFront Untuk informasi selengkapnya, lihat Gunakan identitas akses asal (warisan, tidak disarankan).
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
sns:ListSubscriptionsByTopic
dansns:ListTopics
-
Saat Anda membuat CloudWatch alarm di CloudFront konsol, Anda dapat memilih SNS topik untuk notifikasi.
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
waf:GetWebACL
danwaf:ListWebACLs
-
Memungkinkan Anda melihat daftar AWS WAF web ACLs di CloudFront konsol.
Izin ini tidak diperlukan jika Anda tidak menggunakan CloudFront konsol.
Contoh kebijakan yang dikelola pelanggan
Anda dapat membuat IAM kebijakan kustom Anda sendiri untuk mengizinkan izin CloudFront API tindakan. Anda dapat melampirkan kebijakan khusus ini ke IAM pengguna atau grup yang memerlukan izin yang ditentukan. Kebijakan ini berfungsi saat Anda menggunakan CloudFront API, the AWS SDKs, atau AWS CLI. Contoh-contoh berikut menunjukkan izin untuk beberapa kasus penggunaan umum. Untuk kebijakan yang memberikan akses penuh kepada pengguna CloudFront, lihatIzin diperlukan untuk menggunakan konsol CloudFront .
Contoh
Contoh 1: Mengizinkan akses baca ke semua distribusi
Kebijakan izin berikut memberikan izin pengguna untuk melihat semua distribusi di konsol: CloudFront
{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"arn:aws:s3:::*" } ] }
Contoh 2: Mengizinkan pembuatan, pembaruan, dan penghapusan distribusi
Kebijakan izin berikut memungkinkan pengguna untuk membuat, memperbarui, dan menghapus distribusi menggunakan konsol: CloudFront
{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:CreateDistribution", "cloudfront:DeleteDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:UpdateDistribution", "cloudfront:ListCloudFrontOriginAccessIdentities", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets", "s3:PutBucketPolicy" ], "Resource":"arn:aws:s3:::*" } ] }
cloudfront:ListCloudFrontOriginAccessIdentities
memungkinkan pengguna untuk secara otomatis memberikan ke identitas akses asal yang sudah ada izin untuk mengakses objek di keranjang Amazon S3. Jika Anda juga ingin pengguna dapat membuat identitas akses asal, Anda juga perlu mengizinkan cloudfront:CreateCloudFrontOriginAccessIdentity
izin.
Contoh 3: Mengizinkan pembuatan dan pencatatan invalidasi
Kebijakan izin berikut memungkinkan pengguna untuk membuat dan membuat daftar ketidakabsahan. Ini termasuk akses baca ke CloudFront distribusi karena Anda membuat dan melihat pembatalan dengan terlebih dahulu menampilkan pengaturan untuk distribusi:
{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "acm:ListCertificates", "cloudfront:GetDistribution", "cloudfront:GetStreamingDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListCloudFrontOriginAccessIdentities", "cloudfront:CreateInvalidation", "cloudfront:GetInvalidation", "cloudfront:ListInvalidations", "elasticloadbalancing:DescribeLoadBalancers", "iam:ListServerCertificates", "sns:ListSubscriptionsByTopic", "sns:ListTopics", "waf:GetWebACL", "waf:ListWebACLs" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"arn:aws:s3:::*" } ] }
Contoh 4: Izinkan membuat distribusi
Kebijakan izin berikut memberikan izin kepada pengguna untuk membuat dan mencantumkan distribusi di konsol. CloudFront Untuk CreateDistribution
tindakan, tentukan karakter wildcard (*) untuk Resource
alih-alih wildcard untuk distribution ARN ()arn:aws:cloudfront::123456789012:distribution/*
. Untuk informasi selengkapnya tentang Resource
elemen, lihat elemen IAM JSON kebijakan: Sumber daya dalam Panduan IAM Pengguna.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "cloudfront:CreateDistribution", "Resource": "*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "cloudfront:ListDistributions", "Resource": "*" } ] }