Memperoleh SES SMTP kredensi Amazon - Layanan Email Sederhana Amazon

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

Memperoleh SES SMTP kredensi Amazon

Anda memerlukan SES SMTP kredensi Amazon untuk mengakses antarmuka. SES SMTP

Kredensi yang Anda gunakan untuk mengirim email melalui SES SMTP antarmuka unik untuk setiap AWS Wilayah. Jika Anda menggunakan SES SMTP antarmuka untuk mengirim email di lebih dari satu Wilayah, Anda harus membuat satu set SMTP kredensil untuk setiap Wilayah yang Anda rencanakan untuk digunakan.

SMTPKata sandi Anda berbeda dari kunci akses AWS rahasia Anda. Untuk informasi selengkapnya tentang jenis kredensial, lihat Tipe kredensial Amazon SES.

catatan

SMTPTitik akhir saat ini tidak tersedia di Afrika (Cape Town), Asia Pasifik (Jakarta), Eropa (Milan), Israel (Tel Aviv), dan Timur Tengah (Bahrain).

Memperoleh SES SMTP kredensil menggunakan konsol SES

Bila Anda menggunakan SES alur kerja di bawah ini untuk menghasilkan SMTP kredensyal menggunakan konsol, Anda akan dibawa ke IAM konsol untuk membuat pengguna dengan kebijakan yang sesuai untuk memanggil SES dan memberi Anda SMTP kredensyal yang terkait dengan pengguna tersebut.

Persyaratan

IAMPengguna dapat membuat SES SMTP kredensil, tetapi kebijakan pengguna harus memberi mereka izin untuk menggunakannya IAM sendiri, karena SES SMTP kredensil dibuat dengan menggunakan. IAM IAMKebijakan Anda harus memungkinkan Anda untuk melakukan IAM tindakan berikut:iam:ListUsers,iam:CreateUser,iam:CreateAccessKey, daniam:PutUserPolicy. Jika Anda mencoba membuat SES SMTP kredensyal menggunakan konsol dan IAM pengguna Anda tidak memiliki izin ini, Anda akan melihat kesalahan yang menyatakan bahwa akun Anda “tidak diizinkan untuk melakukan iam:.” ListUsers

Untuk membuat SMTP kredensi Anda
  1. Masuk ke AWS Management Console dan buka SES konsol Amazon di https://console.aws.amazon.com/ses/.

  2. Pilih SMTPpengaturan di panel navigasi kiri - ini akan membuka halaman pengaturan Simple Mail Transfer Protocol (SMTP).

  3. Pilih SMTPCreate Credentials di sudut kanan atas - konsol akan terbuka. IAM

  4. (Opsional) Jika Anda perlu melihat, mengedit, atau menghapus SMTP pengguna yang telah Anda buat, pilih Kelola SMTP kredenal saya yang ada di sudut kanan bawah - konsol akan terbuka. IAM Rincian untuk mengelola SMTP kredensi diberikan mengikuti prosedur ini.

  5. Untuk Buat Pengguna SMTP, ketik nama untuk SMTP pengguna Anda di bidang Nama Pengguna. Atau, Anda dapat menggunakan nilai default yang disediakan di bidang ini. Setelah selesai, pilih Buat pengguna di sudut kanan bawah.

  6. Pilih Tampilkan di bawah SMTPkata sandi - SMTP kredensional Anda ditampilkan di layar.

  7. Unduh kredensialnya dengan memilih Unduh file.csv atau salin dan simpan di tempat yang aman, karena Anda tidak dapat melihat atau menyimpan kredensialnya setelah menutup kotak dialog ini.

  8. Pilih Kembali ke SES konsol.

Anda dapat melihat daftar SMTP kredensyal yang Anda buat menggunakan prosedur ini di IAM konsol di bawah Manajemen akses dan memilih Pengguna diikuti dengan menggunakan bilah pencarian untuk menemukan semua pengguna yang telah ditetapkan SMTP kredensialnya.

Anda juga dapat menggunakan IAM konsol untuk menghapus SMTP pengguna yang ada. Untuk mempelajari lebih lanjut tentang menghapus pengguna, lihat Mengelola IAM Pengguna di Panduan IAM Memulai.

Jika Anda ingin mengubah SMTP kata sandi, hapus SMTP pengguna yang ada di IAM konsol. Kemudian, untuk menghasilkan satu set SMTP kredensil baru, selesaikan prosedur sebelumnya.

Memperoleh SES SMTP kredensi dengan mengonversi kredensi yang ada AWS

Jika Anda memiliki pengguna yang Anda atur menggunakan IAM antarmuka, Anda dapat memperoleh kredensional pengguna dari SES SMTP kredensialnya. AWS

penting

Jangan gunakan kredensil sementara untuk mendapatkan AWS SMTP kredensil. SESSMTPAntarmuka tidak mendukung SMTP kredensil yang telah dihasilkan dari kredensil keamanan sementara.

Untuk memungkinkan IAM pengguna mengirim email menggunakan SES SMTP antarmuka, lakukan hal berikut.

  • Dapatkan kredensi pengguna dari SMTP kredensialnya dengan menggunakan algoritme AWS yang disediakan di bagian ini. Karena Anda memulai dari AWS kredensialnya, nama SMTP pengguna sama dengan ID kunci AWS akses, jadi Anda hanya perlu membuat kata sandi. SMTP

  • Terapkan kebijakan berikut kepada IAM pengguna:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ] }

    Untuk informasi selengkapnya tentang menggunakan SES withIAM, lihatIdentity and access management di Amazon SES.

catatan

Meskipun Anda dapat menghasilkan SES SMTP kredensil untuk setiap IAM pengguna, kami sarankan Anda membuat IAM pengguna terpisah ketika Anda membuat kredensil Anda. SMTP Untuk informasi tentang mengapa itu adalah praktik yang baik untuk membuat pengguna untuk tujuan tertentu, buka Praktik IAM Terbaik.

Pseudocode berikut menunjukkan algoritma yang mengubah kunci akses AWS rahasia ke kata sandi. SES SMTP

// Modify this variable to include your AWS secret access key key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"; // Modify this variable to refer to the AWS Region that you want to use to send email. region = "us-west-2"; // The values of the following variables should always stay the same. date = "11111111"; service = "ses"; terminal = "aws4_request"; message = "SendRawEmail"; version = 0x04; kDate = HmacSha256(date, "AWS4" + key); kRegion = HmacSha256(region, kDate); kService = HmacSha256(service, kRegion); kTerminal = HmacSha256(terminal, kService); kMessage = HmacSha256(message, kTerminal); signatureAndVersion = Concatenate(version, kMessage); smtpPassword = Base64(signatureAndVersion);

Beberapa bahasa pemrograman termasuk perpustakaan yang dapat Anda gunakan untuk mengonversi kunci akses IAM rahasia menjadi SMTP kata sandi. Bagian ini mencakup contoh kode yang dapat Anda gunakan untuk mengonversi kunci akses AWS rahasia ke SES SMTP kata sandi menggunakan Python.

catatan

Contoh berikut menggunakan f-string yang diperkenalkan di Python 3.6; jika menggunakan versi lama, maka tidak akan berfungsi.

Saat ini, Python SDK (Boto3) secara resmi mendukung 2.7 dan 3.6 (atau lebih baru). Namun, dukungan 2.7 tidak lagi digunakan dan akan dihentikan pada 15/7/2021, sehingga Anda harus meningkatkan ke setidaknya versi 3.6.

Python
#!/usr/bin/env python3 import hmac import hashlib import base64 import argparse SMTP_REGIONS = [ "us-east-2", # US East (Ohio) "us-east-1", # US East (N. Virginia) "us-west-2", # US West (Oregon) "ap-south-1", # Asia Pacific (Mumbai) "ap-northeast-2", # Asia Pacific (Seoul) "ap-southeast-1", # Asia Pacific (Singapore) "ap-southeast-2", # Asia Pacific (Sydney) "ap-northeast-1", # Asia Pacific (Tokyo) "ca-central-1", # Canada (Central) "eu-central-1", # Europe (Frankfurt) "eu-west-1", # Europe (Ireland) "eu-west-2", # Europe (London) "eu-south-1", # Europe (Milan) "eu-north-1", # Europe (Stockholm) "sa-east-1", # South America (Sao Paulo) "us-gov-west-1", # AWS GovCloud (US) "us-gov-east-1", # AWS GovCloud (US) ] # These values are required to calculate the signature. Do not change them. DATE = "11111111" SERVICE = "ses" MESSAGE = "SendRawEmail" TERMINAL = "aws4_request" VERSION = 0x04 def sign(key, msg): return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest() def calculate_key(secret_access_key, region): if region not in SMTP_REGIONS: raise ValueError(f"The {region} Region doesn't have an SMTP endpoint.") signature = sign(("AWS4" + secret_access_key).encode("utf-8"), DATE) signature = sign(signature, region) signature = sign(signature, SERVICE) signature = sign(signature, TERMINAL) signature = sign(signature, MESSAGE) signature_and_version = bytes([VERSION]) + signature smtp_password = base64.b64encode(signature_and_version) return smtp_password.decode("utf-8") def main(): parser = argparse.ArgumentParser( description="Convert a Secret Access Key to an SMTP password." ) parser.add_argument("secret", help="The Secret Access Key to convert.") parser.add_argument( "region", help="The AWS Region where the SMTP password will be used.", choices=SMTP_REGIONS, ) args = parser.parse_args() print(calculate_key(args.secret, args.region)) if __name__ == "__main__": main()

Untuk mendapatkan SMTP kata sandi Anda dengan menggunakan skrip ini, simpan kode sebelumnya sebagai. smtp_credentials_generate.py Kemudian, di baris perintah, jalankan perintah berikut:

python path/to/smtp_credentials_generate.py wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY us-east-1

Di perintah sebelumnya, lakukan hal berikut:

  • Ganti path/to/ dengan jalur ke lokasi tempat Anda menyimpansmtp_credentials_generate.py.

  • Ganti wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY dengan kunci akses rahasia yang ingin Anda ubah menjadi SMTP kata sandi.

  • Ganti us-east-1 dengan AWS Wilayah di mana Anda ingin menggunakan SMTP kredensialnya.

Ketika skrip ini berjalan dengan sukses, satu-satunya output adalah SMTP kata sandi Anda.