

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

# Mengamankan AWS IAM Roles Anywhere dengan sertifikat pribadi
<a name="iam-roles-anywhere-private-ca"></a>

*Barnali Singh, Amazon Web Services*

## Ringkasan
<a name="iam-roles-anywhere-private-ca-summary"></a>

Pola ini menunjukkan cara menerapkan AWS IAM Roles Anywhere with AWS Private Certificate Authority (AWS Private CA) untuk mengaktifkan otentikasi berbasis sertifikat yang aman untuk beban kerja eksternal yang mengakses sumber daya. AWS Solusinya menghilangkan kebutuhan akan kunci akses jangka panjang dengan menggunakan X.509 sertifikat untuk mendapatkan AWS kredensyal sementara. Ini adalah pola keamanan cloud-native yang mencakup otomatisasi lengkap melalui AWS CloudFormation templat dan skrip shell, memungkinkan organisasi untuk dengan cepat menerapkan otentikasi hibrid aman untuk aplikasi lokal, saluran pipa, dan sistem eksternal. CI/CD 

## Prasyarat dan batasan
<a name="iam-roles-anywhere-private-ca-prereqs"></a>

**Prasyarat**

**Untuk** **penyebaran AWS infrastruktur**:
+ AWS CLI diinstal dan dikonfigurasi dengan izin administratif
+ Izin administratif untuk IAM, IAM Roles Anywhere, dan layanan AWS Private CA 

**Untuk pengaturan sistem klien:**
+ AWS CLI diinstal pada sistem klien dengan izin ini:
  + `acm-pca:IssueCertificate`
  + `acm-pca:GetCertificate`
+ OpenSSL diinstal pada sistem klien
+ AWS Penandatanganan Helper diinstal pada setiap sistem klien
+ Pemahaman dasar X.509 sertifikat dan konsep PKI

**catatan**  
 CloudFormation Template secara otomatis menangani pembuatan AWS sumber daya. OpenSSL hanya diperlukan pada sistem eksternal yang akan menggunakan sertifikat untuk mengakses sumber daya. AWS 

**Batasan**
+ Masa berlaku sertifikat dibatasi maksimal 10 tahun untuk root CA
+ Putar sertifikat klien secara teratur. Kami menyarankan Anda melakukan ini setidaknya setahun sekali.
+ Batasan regional: Percayai jangkar dan AWS Private CA harus berada di wilayah yang sama AWS 
+ Ukuran sertifikat maksimum: 16KB untuk sertifikat klien

**Versi produk**
+ AWS CLI versi 2.0 atau yang lebih baru
+ OpenSSL 1.1.1 atau yang lebih baru
+ AWS Penandatanganan Helper 1.4.0 atau yang lebih baru
+ AWS Private CA, versi saat ini
+ IAM Roles Anywhere e, versi saat ini

## Arsitektur
<a name="iam-roles-anywhere-private-ca-architecture"></a>

**Tumpukan teknologi target**

• AWS Private CA - Root CA untuk penerbitan sertifikat

• IAM Roles Anywhere - layanan asumsi Certificate-based peran

• Peran dan kebijakan IAM - Kontrol akses dan izin

• AWS Penandatanganan Helper - alat pengambilan Client-side kredensyal

• OpenSSL - Sertifikat dan pembuatan kunci

• CloudFormation - Otomatisasi infrastruktur

**Arsitektur target**

** **

![](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/2600dc9f-9c1a-442e-9523-1c925aff7620/images/309c3de5-255e-4257-8ad8-af58c1ce8855.png)


Gambar 1 otentikasi berbasis IAM Roles Anywhere sertifikat

**Arsitekturnya terdiri dari:**

1. Sertifikat sekarang - Sistem eksternal menyajikan X.509 sertifikat ke AWS

1. Otentikasi - IAM Roles Anywhere menerima sertifikat dan memulai otentikasi

1. Verifikasi - Trust Anchor memverifikasi sertifikat terhadap otoritas sertifikat tepercaya

1. Validasi - AWS Private CA memvalidasi keaslian dan status sertifikat

1. Sertifikat valid - AWS Private CA konfirmasi sertifikat valid dan tepercaya

1. Asumsikan peran - IAM Roles Anywhere memungkinkan sistem eksternal untuk mengambil peran IAM yang dikonfigurasi

1. Akses hibah - Sistem eksternal menerima kredensyal sementara untuk mengakses sumber daya AWS

*Otomatisasi dan skala*

Pola ini mencakup otomatisasi lengkap melalui:

• CloudFormation template untuk penyediaan AWS sumber daya dengan izin IAM yang dapat dikonfigurasi

• Skrip Shell untuk pembuatan sertifikat dan pengaturan klien

• Konfigurasi parameter untuk beberapa lingkungan dan kebijakan IAM khusus

• Pembuatan sertifikat Batch untuk banyak klien

• Instalasi dan konfigurasi pembantu kredensyal otomatis

**Alur kerja**

1. Menetapkan AWS layanan dasar yang diperlukan untuk otentikasi berbasis sertifikat menggunakan. IAM Roles Anywhere

1. Buat dan konfigurasikan sertifikat sisi klien dan alat otentikasi untuk akses aman. AWS 

1. Verifikasi fungsionalitas otentikasi berbasis sertifikat dan buat pemantauan untuk operasi yang sedang berlangsung.

## Alat
<a name="iam-roles-anywhere-private-ca-tools"></a>

• CloudFormation - Mengotomatiskan pembuatan PCA, Trust Anchor, IAM Role, dan Profile

• AWS CLI - Command-line antarmuka untuk interaksi AWS layanan

• OpenSSL - Menghasilkan permintaan penandatanganan sertifikat dan mengelola sertifikat

• Pembantu AWS Penandatanganan - Menukar sertifikat untuk kredensyal sementara AWS 

• Bash/shell Skrip - Mengotomatiskan proses penyiapan lengkap

*Repositori kode*

[AWS IAM Berperan Di Mana Saja dengan Otoritas Sertifikat Pribadi](https://github.com/aws-samples/sample-aws-iam-roles-anywhere-automation)

## Praktik terbaik
<a name="iam-roles-anywhere-private-ca-best-practices"></a>
+ Konfigurasikan kebijakan IAM berdasarkan prinsip hak istimewa paling rendah menggunakan `--iam-policies parameter`
+ Putar sertifikat klien secara teratur. Kami menyarankan Anda melakukan ini setiap tahun.
+ Gunakan validasi sertifikat yang kuat dalam kebijakan kepercayaan
+ Menerapkan prosedur pencabutan sertifikat
+ Pantau tanggal kedaluwarsa sertifikat

## Epik
<a name="iam-roles-anywhere-private-ca-epics"></a>

### Menyiapkan AWS Infrastruktur
<a name="set-up-aws-infrastructure"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| ****Menyebarkan infrastruktur CloudFormation**** | Buat dan terapkan CloudFormation template yang menyediakan semua AWS sumber daya yang diperlukan termasuk AWS Private CA, Trust Anchor, peran IAM dengan kebijakan yang sesuai, dan profil. IAM Roles Anywhere   Konfigurasikan parameter untuk penamaan proyek, periode validitas sertifikat, durasi sesi, dan lampiran kebijakan IAM untuk membangun fondasi infrastruktur inti. | Arsitek awan, DevOps insinyur | 
| Konfigurasikan pengaturan otoritas sertifikat | Inisialisasi AWS Private CA dengan menginstal sertifikat root, mengonfigurasi templat sertifikat, dan membangun rantai kepercayaan sertifikat. Siapkan periode validitas sertifikat, algoritme kunci, dan ekstensi sertifikat yang diperlukan untuk IAM Roles Anywhere otentikasi guna memastikan infrastruktur PKI yang tepat. | Administrator AWS, Administrator cloud | 
| Validasi &AWS; konfigurasi sumber daya | Lakukan validasi komprehensif dari semua AWS sumber daya yang digunakan untuk memastikan konfigurasi dan konektivitas yang tepat. Verifikasi Trust Anchor ditautkan dengan benar AWS Private CA, peran IAM memiliki izin yang sesuai, profil dikonfigurasi dengan benar, dan semua sumber daya dalam active/ready status untuk alur kerja otentikasi berbasis sertifikat. | Administrator sistem AWS, Insinyur uji | 

### Menghasilkan dan menyebarkan sertifikat klien
<a name="generate-and-deploy-client-certificates"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan lingkungan klien | Siapkan lingkungan klien dengan membuat skrip penerapan dapat dieksekusi dan memastikan izin yang tepat. Konfigurasikan sistem lokal dengan alat dan dependensi yang diperlukan, verifikasi aksesibilitas skrip, dan buat fondasi untuk proses pembuatan dan penerapan sertifikat. | DevOps insinyur, administrator sistem AWS | 
| Hasilkan permintaan penandatanganan sertifikat | Buat permintaan penandatanganan sertifikat (CSR) untuk sistem klien menggunakan OpenSSL atau alat yang setara. Konfigurasikan parameter sertifikat termasuk informasi subjek, algoritme kunci, dan ekstensi sertifikat.  Pastikan CSR memenuhi AWS Private CA persyaratan dan berisi metadata yang sesuai untuk otentikasi. IAM Roles Anywhere  | Administrator cloud, DevOps insinyur | 
| Menerbitkan sertifikat klien melalui AWS Private CA | Proses CSR AWS Private CA hingga menerbitkan sertifikat klien yang valid. Konfigurasikan periode validitas sertifikat, templat sertifikat, dan pastikan pembentukan rantai sertifikat yang tepat. Verifikasi penerbitan sertifikat dan unduh sertifikat yang ditandatangani untuk penyebaran klien. | Administrator AWS, arsitek Cloud | 

### Uji dan validasi otentikasi
<a name="test-and-validate-authentication"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Dapatkan AWS kredensi sementara | Jalankan skrip pembantu AWS kredenal untuk mengambil kredensil sementara menggunakan sertifikat klien dan kunci pribadi yang dikonfigurasi. Verifikasi bahwa proses pengambilan kredenal berfungsi dengan benar, validasi format kredensi dan waktu kedaluwarsa, dan pastikan integrasi yang tepat dengan IAM Roles Anywhere layanan untuk alur kerja autentikasi yang mulus. | DevOps insinyur, administrator sistem AWS | 
| Uji akses AWS sumber daya | Lakukan pengujian komprehensif akses AWS sumber daya menggunakan kredensyal sementara yang diperoleh. Jalankan berbagai AWS CLI perintah dan panggilan API untuk memverifikasi konektivitas ke layanan target seperti Amazon S3, Amazon EC2, dan. AWS Lambda Validasi bahwa izin selaras dengan kebijakan peran IAM yang dikonfigurasi dan dokumentasikan pola akses yang berhasil. | Insinyur uji, administrator Cloud | 
| Verifikasi asumsi peran dan izin | Melakukan validasi menyeluruh dari proses asumsi peran IAM dan batas izin. Uji operasi yang diizinkan dan dibatasi untuk mengonfirmasi akses hak istimewa paling sedikit diberlakukan dengan benar. Verifikasi batas durasi sesi, mekanisme penyegaran kredenal, dan pastikan asumsi peran mengikuti praktik terbaik keamanan. | Administrator AWS, Insinyur uji | 
| Melaksanakan pemantauan dan pencatatan | Siapkan pemantauan dan pencatatan komprehensif untuk sistem otentikasi berbasis sertifikat. Konfigurasikan CloudTrail pencatatan untuk jejak audit, terapkan pemantauan kedaluwarsa sertifikat, atur peringatan untuk kegagalan otentikasi, dan buat dasbor untuk melacak pola penggunaan dan peristiwa keamanan di seluruh infrastruktur. IAM Roles Anywhere  | DevOps insinyur, Arsitek awan | 

## Pemecahan masalah
<a name="iam-roles-anywhere-private-ca-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| **Kegagalan validasi sertifikat —** “Validasi sertifikat gagal” atau "InvalidCertificate" kesalahan saat mencoba otentikasi. | **Langkah-langkah resolusi:**<br />• Verifikasi tanggal validitas sertifikat menggunakan <br />openssl x509 -dalam sertifikat.pem -tanggal -noout<br />• Periksa apakah konfigurasi Trust Anchor menunjuk untuk memperbaiki CA pribadi<br />• Pastikan bahwa kunci pribadi sesuai dengan sertifikat<br />• Regenerasi sertifikat jika dikeluarkan oleh CA yang salah | 
|  **Izin IAM ditolak kesalahan —** “Akses Ditolak” atau "UnauthorizedOperation" saat mengakses AWS sumber daya meskipun otentikasi berhasil | **Langkah Resolusi:**<br />• Tinjau dan perluas kebijakan peran IAM untuk menyertakan izin yang diperlukan<br />• Verifikasi bahwa kebijakan kepercayaan mencakup *rolesanywhere.amazonaws.com* sebagai entitas tepercaya<br />• Periksa apakah konfigurasi ARN profil cocok dengan sumber daya yang digunakan<br />• Menerapkan mekanisme penyegaran kredensyal untuk proses yang berjalan lama | 

## Sumber daya terkait
<a name="iam-roles-anywhere-private-ca-resources"></a>
+ [IAM Roles Anywhere Panduan Pengguna](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/)
+ [AWS Private Certificate Authority Panduan Pengguna](https://docs.aws.amazon.com/privateca/latest/userguide/)
+ [AWS Menandatangani Dokumentasi Pembantu](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html)

## Informasi tambahan
<a name="iam-roles-anywhere-private-ca-additional"></a>

Pola ini sangat ideal untuk organisasi dengan arsitektur cloud hybrid, CI/CD jaringan pipa yang berjalan di luar AWS, atau sistem eksternal apa pun yang membutuhkan akses aman AWS . Pendekatan berbasis sertifikat memberikan keamanan yang lebih baik daripada kunci akses jangka panjang dan memungkinkan manajemen sertifikat terpusat melalui. AWS Private CA

**Izin IAM yang dapat dikonfigurasi -** Solusinya mendukung konfigurasi kebijakan IAM yang fleksibel melalui: `--iam-policies parameter`
+ Default: `ReadOnlyAccess` untuk penerapan awal yang aman
+ Kustom: Tentukan ARN kebijakan yang dipisahkan koma untuk kasus penggunaan tertentu. Misalnya,, `S3ReadOnlyAccess``EC2ReadOnlyAccess`, atau kebijakan khusus. Mendukung beberapa kebijakan untuk persyaratan izin yang kompleks.

**Contoh penggunaan:**

```
# Default read-only access
./deploy.sh

# S3-only access
./deploy.sh --iam-policies "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"

# Multiple services
./deploy.sh --iam-policies "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess,arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess"
```