

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

# Mendapatkan kredensial SMTP Amazon SES
<a name="smtp-credentials"></a>

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

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

Kata sandi SMTP Anda berbeda dari kunci akses AWS rahasia Anda. Untuk informasi selengkapnya tentang jenis kredensial, lihat [Tipe kredensial Amazon SES](send-email-concepts-credentials.md).

**catatan**  
Untuk daftar titik akhir SMTP yang tersedia saat ini, lihat titik akhir [SMTP](https://docs.aws.amazon.com/general/latest/gr/ses.html#ses_smtp_endpoints) di. *Referensi Umum AWS* 

## Memperoleh kredensi SES SMTP menggunakan konsol SES
<a name="smtp-credentials-console"></a>

**Persyaratan**  
Pengguna IAM dapat membuat kredensyal SES SMTP, tetapi kebijakan pengguna harus memberi mereka izin untuk menggunakan IAM itu sendiri, karena kredensyal SES SMTP dibuat dengan menggunakan IAM. Kebijakan IAM Anda harus mengizinkan Anda untuk melakukan tindakan IAM berikut: `iam:ListUsers`, `iam:CreateUser`, `iam:CreateAccessKey`, dan `iam:PutUserPolicy`. Jika Anda mencoba membuat kredensyal SES SMTP menggunakan konsol dan pengguna IAM Anda tidak memiliki izin ini, Anda akan melihat kesalahan yang menyatakan bahwa akun Anda *“tidak diizinkan* untuk melakukan iam:.” ListUsers

**penting**  
Tindakan IAM yang direferensikan di atas memiliki tingkat akses [manajemen Izin](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_understand-policy-summary-access-level-summaries.html#access_policies_access-level) yang merupakan tingkat IAM tertinggi karena memberikan izin untuk memberikan atau memodifikasi izin sumber daya dalam layanan. Oleh karena itu, untuk meningkatkan keamanan AWS akun Anda, sangat disarankan agar Anda membatasi atau secara teratur memantau kebijakan ini yang mencakup klasifikasi tingkat akses manajemen Izin.

**Untuk membuat kredensial SMTP Anda**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon SES di [https://console.aws.amazon.com/ses/](https://console.aws.amazon.com/ses/).

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

1. Pilih **Create SMTP Credentials** di sudut kanan atas - konsol IAM akan terbuka.

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

1. **Untuk **Buat Pengguna untuk SMTP**, ketikkan nama untuk pengguna SMTP 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.

1. Pilih **Tampilkan** di bawah *kata sandi SMTP* - kredensi SMTP Anda ditampilkan di layar.

1. Unduh kredensyal ini 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.

1. Pilih **Kembali ke konsol SES**.

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

Anda juga dapat menggunakan konsol IAM untuk menghapus pengguna SMTP yang sudah ada. Untuk mempelajari lebih lanjut tentang menghapus pengguna, lihat [Mengelola Pengguna IAM di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html) *Memulai IAM*.

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

## Memperoleh kredensyal SES SMTP dengan mengonversi kredensyal yang ada AWS
<a name="smtp-credentials-convert"></a>

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

**penting**  
Jangan gunakan kredensyal sementara untuk mendapatkan AWS kredensyal SMTP. Antarmuka SES SMTP tidak mendukung kredensyal SMTP yang telah dihasilkan dari kredensyal keamanan sementara. 

**Untuk mengaktifkan pengguna IAM mengirim email menggunakan antarmuka SES SMTP**

1. Dapatkan kredensi SMTP pengguna dari AWS kredensialnya dengan menggunakan algoritme yang disediakan di bagian ini mengikuti prosedur ini.

   Karena Anda memulai dari AWS kredensyal, nama pengguna SMTP sama dengan ID kunci AWS akses, jadi Anda hanya perlu membuat kata sandi SMTP.

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di bawah **Manajemen akses**, pilih **Kebijakan** diikuti dengan **Buat kebijakan**.

1. Di **editor Kebijakan**, pilih **JSON** dan hapus kode contoh apa pun di editor.

1. Tempelkan ke kebijakan izin berikut ke editor:

------
#### [ JSON ]

****  

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

------

1. Pilih **Berikutnya** dan masukkan `AmazonSesSendingAccess` di bidang **Nama kebijakan** diikuti oleh **Buat kebijakan**.

1. Di bawah **Manajemen akses**, pilih **Grup pengguna** diikuti oleh **Buat grup**.

1. Masukkan `AWSSESSendingGroupDoNotRename` di bidang **Nama grup pengguna**.

1. Tambahkan pengguna SMTP ke grup dengan memilihnya dari **Tambahkan pengguna ke tabel grup**.

1. Lampirkan `AmazonSesSendingAccess` kebijakan yang dibuat sebelumnya dengan memilihnya dari tabel **Lampirkan kebijakan izin** diikuti oleh **Buat grup pengguna**.

Untuk informasi selengkapnya tentang penggunaan SES dengan IAM, lihat[Identity and access management di Amazon SES](control-user-access.md).

**catatan**  
Meskipun Anda dapat menghasilkan kredensi SES SMTP untuk setiap pengguna IAM, kami menyarankan Anda membuat pengguna IAM terpisah ketika Anda membuat kredenal SMTP Anda. Untuk informasi tentang mengapa ini praktik yang baik untuk membuat pengguna dengan tujuan tertentu, buka [Praktik Terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPractices.html).

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

```
 1. // Modify this variable to include your AWS secret access key
 2. key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
 3.             
 4. // Modify this variable to refer to the AWS Region that you want to use to send email.
 5. region = "us-west-2";
 6.             
 7. // The values of the following variables should always stay the same.
 8. date = "11111111";
 9. service = "ses";
10. terminal = "aws4_request";
11. message = "SendRawEmail";
12. version = 0x04;
13. 
14. kDate = HmacSha256(date, "AWS4" + key);
15. kRegion = HmacSha256(region, kDate);
16. kService = HmacSha256(service, kRegion);
17. kTerminal = HmacSha256(terminal, kService);
18. kMessage = HmacSha256(message, kTerminal);
19. signatureAndVersion = Concatenate(version, kMessage);
20. smtpPassword = Base64(signatureAndVersion);
```

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

**catatan**  
Contoh berikut menggunakan **f-string** yang diperkenalkan di Python 3.6; jika menggunakan versi lama, maka tidak akan berfungsi.
Dalam contoh berikut, daftar SMTP\$1REGIONS hanyalah sebuah contoh—daftar wilayah Anda yang sebenarnya bisa lebih pendek atau lebih lama tergantung pada wilayah mana Anda berencana untuk mengirim email karena Anda memerlukan kredensyal SMTP untuk masing-masing wilayah. Wilayah AWS

------
#### [ 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 kata sandi SMTP Anda 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 menyimpan`smtp_credentials_generate.py`.
+ Ganti *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY* dengan kunci akses rahasia yang ingin Anda ubah menjadi kata sandi SMTP.
+ Ganti *us-east-1* dengan AWS Wilayah di mana Anda ingin menggunakan kredenal SMTP.

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

------

## Memigrasi pengguna SMTP dari kebijakan inline yang ada ke kebijakan grup (rekomendasi keamanan)
<a name="migrate-inline-policy-to-group"></a>

**penting**  
Jika Anda membuat kredensi SMTP SES sebelum 6 September 2024, kebijakan inline dan tag telah dilampirkan ke pengguna SMTP Anda. SES bergerak menjauh dari kebijakan inline dan mendorong Anda untuk melakukan hal yang sama sebagai rekomendasi keamanan.

Sebelum memigrasikan pengguna SMTP dari kebijakan sebaris yang ada ke kebijakan grup, Anda harus terlebih dahulu membuat grup pengguna IAM dengan kebijakan izin SES untuk menggantikan kebijakan sebaris. *Jika Anda telah membuat grup pengguna IAM ini, atau secara otomatis dibuat untuk kredensyal SMTP yang Anda buat mulai 6 September 2024 dan seterusnya, Anda dapat langsung melewati langkah 10 dalam prosedur berikut.*

**Untuk bermigrasi dari kebijakan sebaris yang ada ke grup terkelola**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Di bawah **Manajemen akses**, pilih **Kebijakan** diikuti dengan **Buat kebijakan**.

1. Di **editor Kebijakan**, pilih **JSON** dan hapus kode contoh apa pun di editor.

1. Tempelkan ke kebijakan izin berikut ke editor:

------
#### [ JSON ]

****  

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

------

1. Pilih **Berikutnya** dan masukkan `AmazonSesSendingAccess` di bidang **Nama kebijakan** diikuti oleh **Buat kebijakan**.

1. Di bawah **Manajemen akses**, pilih **Grup pengguna** diikuti oleh **Buat grup**.

1. Masukkan `AWSSESSendingGroupDoNotRename` di bidang **Nama grup pengguna**.

1. Tambahkan pengguna SMTP ke grup dengan memilihnya dari **Tambahkan pengguna ke tabel grup**.

1. Lampirkan `AmazonSesSendingAccess` kebijakan yang dibuat sebelumnya dengan memilihnya dari tabel **Lampirkan kebijakan izin** diikuti oleh **Buat grup pengguna**.

   Setelah Anda membuat grup pengguna IAM dengan kebijakan izin SES, Anda dapat memigrasikan pengguna SMTP dari kebijakan inline mereka saat ini ke kebijakan grup ini seperti yang dijelaskan dalam langkah-langkah yang tersisa.

1. Di bawah **Manajemen akses**, pilih **Pengguna** diikuti dengan memilih pengguna SMTP yang ingin Anda migrasikan.

1. Pilih tab **Grup** dan pilih **Tambahkan pengguna ke grup**.

1. Pilih `AWSSESSendingGroupDoNotRename` grup yang diikuti oleh **Tambahkan pengguna ke grup**.

1. Pilih tab **Izin** dan konfirmasikan bahwa ada dua baris `AmazonSesSendingAccess` yang terdaftar dengan kolom **Nama kebijakan**, satu dengan *Inline* dan satu dengan *Grup `AWSSESSendingGroupDoNotRename`* terdaftar di kolom **Terlampir via**.

1. Pilih hanya baris yang terdapat `AmazonSesSendingAccess` di kolom **Nama kebijakan** dan *Sebaris* di kolom **Terlampir melalui** diikuti dengan **Hapus** dan konfirmasi dengan **kebijakan Hapus**.

   Verifikasi baris dengan *Grup `AWSSESSendingGroupDoNotRename`* di kolom **Terlampir via** tetap.

1. Pilih tab **Tag** diikuti oleh **Kelola tag**.

1. Pilih **Hapus** di sebelah baris yang berisi *InvokedBy*di kolom **Kunci** dan *SESConsole*di kolom **Nilai** diikuti oleh **Simpan perubahan**.

**penting**  
`AmazonSesSendingAccess`Kebijakan (baik sebagai kebijakan inline atau grup atau keduanya) harus tetap melekat pada pengguna SMTP untuk memastikan pengiriman mereka tidak terpengaruh. Hanya hapus kebijakan inline setelah kebijakan grup dilampirkan ke pengguna Anda. 