Mengirim contoh kebijakan - Layanan Email Sederhana Amazon

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

Mengirim contoh kebijakan

Mengirim otorisasi memungkinkan Anda untuk menentukan syarat detail saat Anda mengizinkan pengirim delegasi untuk mengirim atas nama Anda.

Ketentuan khusus untuk mengirim otorisasi

Syarat adalah pembatasan tentang izin di pernyataan. Bagian dari pernyataan yang menentukan syarat dapat menjadi yang paling detail dari semua bagian. Kunci adalah karakteristik spesifik yang menjadi dasar pembatasan akses, seperti tanggal dan waktu permintaan.

Anda menggunakan syarat maupun kunci secara bersama-sama untuk mengekspresikan pembatasan. Misalnya, jika Anda ingin membatasi pengirim delegasi membuat permintaan ke Amazon SES atas nama Anda setelah 30 Juli 2019, Anda menggunakan syarat yang disebut DateLessThan. Anda menggunakan kunci yang disebut aws:CurrentTime dan mengaturnya ke nilai 2019-07-30T00:00:00Z.

Anda dapat menggunakan salah satu kunci AWS-wide yang tercantum di Kunci Tersedia di Panduan Pengguna IAM, atau Anda dapat menggunakan salah satu kunci berikut khusus untuk SES yang berguna dalam mengirimkan kebijakan otorisasi:

Kunci syarat

Deskripsi

ses:Recipients

Membatasi alamat penerima, yang menyertakan alamat Kepada:, "CC", dan "BCC".

ses:FromAddress

Membatasi alamat "Dari".

ses:FromDisplayName

Membatasi isi string yang digunakan sebagai nama tampilan "Dari" (terkadang disebut "akrab dari"). Misalnya, nama tampilan "John Doe <johndoe@example.com>" adalah John Doe.

ses:FeedbackAddress

Batasi alamat "Jalur Kembali", yang merupakan alamat tempat pentalan dan aduan dapat dikirim kepada Anda melalui penerusan umpan balik email. Untuk informasi tentang penerusan umpan balik email, lihat Menerima notifikasi Amazon SES melalui email.

Anda dapat menggunakan syarat StringEquals dan StringLike dengan kunci Amazon SES. Syarat ini untuk pencocokan string peka huruf besar kecil. Untuk StringLike, nilai dapat mencakup wildcard yang cocok dengan beberapa karakter (*) atau wildcard yang cocok dengan karakter tunggal (?) di mana pun di string. Misalnya, syarat berikut menentukan bahwa pengirim delegasi hanya dapat mengirim dari alamat "Dari" yang dimulai dengan faktur dan diakhiri dengan @example.com:

"Condition": { "StringLike": { "ses:FromAddress": "invoicing*@example.com" } }

Anda juga dapat menggunakan syarat StringNotLike untuk mencegah pengirim delegasi mengirim email dari alamat email tertentu. Misalnya, Anda dapat melarang pengiriman dari admin@example.com, dan alamat serupa seperti "admin"@example.com, admin+1@example.com, atau sender@admin.example.com, dengan menyertakan syarat berikut di pernyataan kebijakan Anda:

"Condition": { "StringNotLike": { "ses:FromAddress": "*admin*example.com" } }

Untuk informasi selengkapnya tentang cara menentukan syarat, lihat Elemen Kebijakan JSON IAM: Syarat di Panduan Pengguna IAM.

Menentukan pengirim delegasi

Prinsipal, yang merupakan entitas yang Anda berikan izin, dapat berupa Akun AWS, pengguna AWS Identity and Access Management (IAM), atau layanan. AWS

Contoh berikut menunjukkan kebijakan sederhana yang memungkinkan AWS ID 123456789012 mengirim email dari example.com identitas terverifikasi (yang dimiliki oleh 88888888888888). Akun AWS ConditionPernyataan dalam kebijakan ini hanya mengizinkan delegasi (yaitu, AWS ID 123456789012) untuk mengirim email dari alamat pemasaran+. * @example .com, di mana * adalah string apa pun yang ingin ditambahkan pengirim setelah pemasaran+. .

JSON
{ "Id":"SampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeMarketer", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"marketing+.*@example.com" } } } ] }

Contoh kebijakan berikut memberikan izin ke dua pengguna IAM untuk mengirim dari identitas example.com. Pengguna IAM ditentukan oleh Amazon Resource Name (ARN) mereka.

JSON
{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeIAMUser", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::444455556666:user/Jane" ] }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ] } ] }

Contoh kebijakan berikut memberikan izin ke Amazon Cognito untuk mengirim dari identitas example.com.

JSON
{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeService", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "Service":[ "cognito-idp.amazonaws.com" ] }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition": { "StringEquals": { "aws:SourceAccount": "888888888888", "aws:SourceArn": "arn:aws:cognito-idp:us-east-1:888888888888:userpool/your-user-pool-id-goes-here" } } } ] }

Contoh kebijakan berikut memberikan izin ke semua akun di Organisasi AWS untuk mengirim dari identitas example.com. AWS Organisasi ditentukan menggunakan kunci kondisi global PrincipalOrgID.

JSON
{ "Id":"ExampleAuthorizationPolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeOrg", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":"*", "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition":{ "StringEquals":{ "aws:PrincipalOrgID":"o-xxxxxxxxxxx" } } } ] }

Membatasi alamat "Dari"

Jika Anda menggunakan domain terverifikasi, Anda mungkin ingin membuat kebijakan yang hanya mengizinkan pengirim delegasi untuk mengirim dari alamat email yang ditentukan. Untuk membatasi alamat “Dari”, Anda menetapkan kondisi pada kunci yang disebut ses: FromAddress. Kebijakan berikut memungkinkan Akun AWS ID 123456789012 untuk mengirim dari identitas example.com, tetapi hanya dari alamat email sender@example.com.

JSON
{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition":{ "StringEquals":{ "ses:FromAddress":"sender@example.com" } } } ] }

Membatasi waktu delegasi dapat mengirim email

Anda juga dapat mengonfigurasi kebijakan otorisasi pengirim sehingga pengirim delegasi hanya dapat mengirim email pada waktu tertentu dalam sehari, atau dalam rentang tanggal tertentu. Misalnya, jika Anda berencana mengirim kampanye email selama bulan September 2021, Anda dapat menggunakan kebijakan berikut untuk membatasi kemampuan delegasi untuk mengirim email ke bulan itu saja.

JSON
{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlTimePeriod", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition":{ "DateGreaterThan":{ "aws:CurrentTime":"2021-08-31T12:00Z" }, "DateLessThan":{ "aws:CurrentTime":"2021-10-01T12:00Z" } } } ] }

Membatasi tindakan pengiriman email

Ada dua tindakan yang dapat digunakan pengirim untuk mengirim email dengan Amazon SES: SendEmail dan SendRawEmail, tergantung pada banyaknya kendali yang diinginkan pengirim atas format email. Kebijakan otorisasi pengiriman memungkinkan Anda untuk membatasi pengirim delegasi ke salah satu dari dua tindakan tersebut. Namun, banyak pemilik identitas meninggalkan detail email yang mengirim panggilan ke pengirim delegasi dengan mengaktifkan kedua tindakan di kebijakan mereka.

catatan

Jika Anda ingin memungkinkan pengirim delegasi untuk mengakses Amazon SES melalui antarmuka SMTP, Anda minimal harus memilih SendRawEmail.

Jika kasus penggunaan Anda sedemikian rupa sehingga Anda ingin membatasi tindakan, Anda dapat melakukannya dengan memasukkan hanya salah satu tindakan di kebijakan otorisasi pengiriman Anda. Contoh berikut menunjukkan cara membatasi tindakan untuk SendRawEmail.

JSON
{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"ControlAction", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendRawEmail" ] } ] }

Membatasi nama tampilan pengirim email

Beberapa klien email menampilkan nama "akrab" pengirim email (jika header email menyediakannya), bukan alamat "Dari" yang sebenarnya. Misalnya, nama tampilan "John Doe <johndoe@example.com>" adalah John Doe. Untuk instans, Anda dapat mengirim email dari user@example.com, namun Anda lebih suka penerima melihat bahwa email berasal dari Pemasaran daripada dari user@example.com. Kebijakan berikut memungkinkan Akun AWS ID 123456789012 untuk mengirim dari identitas example.com, tetapi hanya jika nama tampilan alamat “Dari” termasuk Pemasaran.

JSON
{ "Id":"ExamplePolicy", "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeFromAddress", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:888888888888:identity/example.com", "Principal":{ "AWS":[ "123456789012" ] }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromDisplayName":"Marketing" } } } ] }

Menggunakan beberapa pernyataan

Kebijakan otorisasi pengiriman Anda dapat mencakup beberapa pernyataan. Contoh kebijakan berikut ini memiliki dua pernyataan. Pernyataan pertama mengizinkan dua orang Akun AWS untuk mengirim dari sender@example.com selama alamat “Dari” dan alamat umpan balik keduanya menggunakan domain example.com. Pernyataan kedua mengotorisasi pengguna IAM untuk mengirim email dari sender@example.com selama alamat email penerima berada di bawah domain example.com.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AuthorizeAWS", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/sender@example.com", "Principal":{ "AWS":[ "111111111111", "222222222222" ] }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition":{ "StringLike":{ "ses:FromAddress":"*@example.com", "ses:FeedbackAddress":"*@example.com" } } }, { "Sid":"AuthorizeInternal", "Effect":"Allow", "Resource":"arn:aws:ses:us-east-1:999999999999:identity/sender@example.com", "Principal":{ "AWS":"arn:aws:iam::333333333333:user/Jane" }, "Action":[ "ses:SendEmail", "ses:SendRawEmail" ], "Condition":{ "ForAllValues:StringLike":{ "ses:Recipients":"*@example.com" } } } ] }