

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

# Keamanan di AWS ParallelCluster
<a name="security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) model menjelaskan hal ini sebagai keamanan *dari* cloud dan keamanan *dalam* cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Auditor pihak ketiga secara teratur menguji dan memverifikasi efektivitas keamanan kami sebagai bagian dari [Program AWS Kepatuhan Program AWS Kepatuhan](https://aws.amazon.com/compliance/programs/) . Untuk mempelajari tentang program kepatuhan yang berlaku AWS ParallelCluster, lihat [AWS Layanan dalam Lingkup oleh AWS Layanan Program Kepatuhan](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Keamanan di cloud** — Tanggung jawab Anda ditentukan oleh AWS layanan atau layanan tertentu yang Anda gunakan. Anda juga bertanggung jawab atas beberapa faktor terkait lainnya termasuk sensitivitas data Anda, persyaratan perusahaan Anda, dan hukum dan peraturan yang berlaku. 

Dokumentasi ini menjelaskan bagaimana Anda harus menerapkan model tanggung jawab bersama saat menggunakan AWS ParallelCluster. Topik berikut menunjukkan cara mengonfigurasi AWS ParallelCluster untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga belajar cara menggunakan dengan AWS ParallelCluster cara yang membantu Anda memantau dan mengamankan AWS sumber daya Anda.

**Topics**
+ [Informasi keamanan untuk layanan yang digunakan oleh AWS ParallelCluster](#security-seealso)
+ [Perlindungan data di AWS ParallelCluster](data-protection.md)
+ [Identity and Access Management untuk AWS ParallelCluster](security-iam.md)
+ [Validasi kepatuhan untuk AWS ParallelCluster](security-compliance-validation.md)
+ [Menegakkan Versi Minimum TLS 1.2](security-enforcing-tls.md)
+ [Mengkonfigurasi grup keamanan untuk lingkungan terbatas](security-groups-configuration.md)

## Informasi keamanan untuk layanan yang digunakan oleh AWS ParallelCluster
<a name="security-seealso"></a>
+ [Keamanan di Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security.html)
+ [Keamanan di Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/security.html)
+ [Keamanan di AWS Batch](https://docs.aws.amazon.com/batch/latest/userguide/security.html)
+ [Keamanan di CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security.html)
+ [Keamanan di Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/security.html)
+ [Keamanan di AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/security.html)
+ [Keamanan di Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/security.html)
+ [Keamanan di Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security.html)
+ [Keamanan di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security.html)
+ [Keamanan di Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/security-considerations.html)
+ [Keamanan FSx untuk Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/security.html)
+ [Keamanan di AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/security.html)
+ [Keamanan di EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-security.html)
+ [Keamanan di AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-security.html)
+ [Keamanan di Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/security.html)
+ [Keamanan di Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-security.html)
+ [Keamanan di Amazon SQS (Untuk AWS ParallelCluster versi 2.x.)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-security.html)
+ [Keamanan di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/security.html)
+ [Keamanan di Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/security.html)

# Perlindungan data di AWS ParallelCluster
<a name="data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensyal dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya. Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

## Enkripsi data
<a name="data-encryption"></a>

Fitur utama dari setiap layanan aman adalah bahwa informasi dienkripsi ketika tidak aktif digunakan.

### Enkripsi saat diam
<a name="encryption-rest"></a>

AWS ParallelCluster tidak menyimpan data pelanggan selain kredensyal yang dibutuhkan untuk berinteraksi dengan AWS layanan atas nama pengguna.

Untuk data pada node di cluster, data dapat dienkripsi saat istirahat.

Untuk volume Amazon EBS, enkripsi dikonfigurasi menggunakan `KmsKeyId` pengaturan [`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings)[`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings)/`Encrypted`dan/di [`EbsSettings`](SharedStorage-v3.md#SharedStorage-v3-EbsSettings) bagian. Untuk informasi selengkapnya, lihat [enkripsi Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) di Panduan Pengguna Amazon EC2.

Untuk volume Amazon EFS, enkripsi dikonfigurasi menggunakan `KmsKeyId` pengaturan [`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings)[`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings)/`Encrypted`dan/di [`EfsSettings`](SharedStorage-v3.md#SharedStorage-v3-EfsSettings) bagian. Untuk informasi selengkapnya, lihat [Cara kerja enkripsi saat istirahat](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html#howencrypt) di *Panduan Pengguna Amazon Elastic File System.*

 FSx Untuk sistem file Lustre, enkripsi data saat istirahat diaktifkan secara otomatis saat membuat sistem FSx file Amazon. Untuk informasi selengkapnya, lihat [Mengenkripsi data saat istirahat di](https://docs.aws.amazon.com/fsx/latest/LustreGuide/encryption-at-rest.html) *Amazon FSx for Lustre* User Guide.

Misalnya tipe dengan NVMe volume, data pada volume penyimpanan NVMe instance dienkripsi menggunakan cipher XTS-AES-256 yang diimplementasikan pada modul perangkat keras pada instance. Kunci enkripsi dihasilkan menggunakan modul perangkat keras dan unik untuk setiap perangkat penyimpanan NVMe instance. Semua kunci enkripsi tersebut akan dihancurkan saat instans dihentikan atau diakhiri dan tidak dapat dipulihkan. Anda tidak dapat menonaktifkan enkripsi ini dan Anda tidak dapat menyediakan kunci enkripsi Anda sendiri. Untuk informasi selengkapnya, lihat [Enkripsi saat istirahat](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-rest) di *Panduan Pengguna Amazon EC2*.

Jika Anda menggunakan AWS ParallelCluster AWS layanan yang mentransmisikan data pelanggan ke komputer lokal Anda untuk penyimpanan, lihat bagian Keamanan dan Kepatuhan dalam Panduan Pengguna layanan tersebut untuk informasi tentang cara data tersebut disimpan, dilindungi, dan dienkripsi.

### Enkripsi saat bergerak
<a name="encryption-transit"></a>

Secara default, semua data yang dikirimkan dari komputer klien yang berjalan AWS ParallelCluster dan titik akhir AWS layanan dienkripsi dengan mengirimkan semuanya melalui koneksi. HTTPS/TLS Lalu lintas antar node di cluster dapat dienkripsi secara otomatis, tergantung pada jenis instance yang dipilih. Untuk informasi selengkapnya, lihat [Enkripsi dalam perjalanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit) di *Panduan Pengguna Amazon EC2*.

## Lihat juga
<a name="security-data-protection-seealso"></a>
+ [Perlindungan data di Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html)
+ [Perlindungan data di EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/data-protection.html)
+ [Perlindungan data di CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-data-protection.html)
+ [Perlindungan data di Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-backup-solutions.html)
+ [Perlindungan data di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/DataDurability.html)
+ [Perlindungan data FSx untuk Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-protection.html)

# Identity and Access Management untuk AWS ParallelCluster
<a name="security-iam"></a>

AWS ParallelCluster menggunakan peran untuk mengakses AWS sumber daya Anda dan layanan mereka. Kebijakan instans dan pengguna yang AWS ParallelCluster digunakan untuk memberikan izin didokumentasikan di[AWS Identity and Access Management izin di AWS ParallelCluster](iam-roles-in-parallelcluster-v3.md).

Satu-satunya perbedaan utama adalah bagaimana Anda mengautentikasi saat menggunakan pengguna standar dan kredensi jangka panjang. Meskipun pengguna memerlukan kata sandi untuk mengakses konsol AWS layanan, pengguna yang sama memerlukan access key pair untuk melakukan operasi yang sama menggunakan AWS ParallelCluster. Semua kredensial jangka pendek lainnya digunakan dengan cara yang sama dengan yang digunakan bersama konsol.

***Kredensi yang digunakan oleh AWS ParallelCluster disimpan dalam file teks biasa dan tidak dienkripsi.***
+ `$HOME/.aws/credentials`File menyimpan kredensi jangka panjang yang diperlukan untuk mengakses sumber daya Anda AWS . Ini termasuk access key ID dan secret access key Anda.
+ Kredensi jangka pendek, seperti untuk peran yang Anda asumsikan, atau yang untuk AWS IAM Identity Center layanan, juga disimpan dalam `$HOME/.aws/sso/cache` folder `$HOME/.aws/cli/cache` dan, masing-masing.

**Mitigasi Risiko**
+ Kami sangat merekomendasikan agar Anda mengkonfigurasi izin sistem file pada direktori `$HOME/.aws` dan direktori dan file anaknya untuk membatasi akses hanya untuk pengguna yang berwenang.
+ Gunakan peran dengan kredensial sementara sedapat mungkin untuk mengurangi peluang terjadinya kerusakan jika kredensialnya dikurangi. Gunakan kredensial jangka panjang hanya untuk meminta dan menyegarkan kredensial peran jangka pendek.

# Validasi kepatuhan untuk AWS ParallelCluster
<a name="security-compliance-validation"></a>

Auditor pihak ketiga menilai keamanan dan kepatuhan AWS layanan sebagai bagian dari beberapa program AWS kepatuhan. Menggunakan AWS ParallelCluster untuk mengakses layanan tidak mengubah kepatuhan layanan tersebut. 

Untuk daftar AWS layanan dalam lingkup program kepatuhan tertentu, lihat [AWS layanan dalam lingkup oleh AWS layanan program kepatuhan](https://aws.amazon.com/compliance/services-in-scope/) . Untuk informasi umum, lihat [program AWS kepatuhan program AWS](https://aws.amazon.com/compliance/programs/) .

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Tanggung jawab kepatuhan Anda saat menggunakan AWS ParallelCluster ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. AWS menyediakan sumber daya berikut untuk membantu kepatuhan:
+ [Panduan memulai cepat keamanan dan kepatuhan Panduan memulai](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) penerapan ini membahas pertimbangan arsitektur dan memberikan langkah-langkah untuk menerapkan lingkungan dasar yang berfokus pada keamanan dan kepatuhan. AWS
+ [Arsitektur untuk keamanan dan Kepatuhan HIPAA di Whitepaper Amazon Web Services — AWS Whitepaper](https://docs.aws.amazon.com/pdfs/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.pdf) ini menjelaskan bagaimana perusahaan dapat menggunakannya untuk membuat aplikasi yang sesuai dengan HIPAA. AWS 
+ [AWS sumber daya AWS kepatuhan](https://aws.amazon.com/compliance/resources/) — Kumpulan buku kerja dan panduan ini mungkin berlaku untuk industri dan lokasi Anda.
+ [Mengevaluasi sumber daya dengan aturan](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) dalam *Panduan AWS Config Pengembang* — AWS Config Layanan menilai seberapa baik konfigurasi sumber daya Anda mematuhi praktik internal, pedoman industri, dan peraturan.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— AWS Layanan ini memberikan pandangan komprehensif tentang keadaan keamanan Anda di dalamnya AWS yang membantu Anda memeriksa kepatuhan Anda terhadap standar industri keamanan dan praktik terbaik.

# Menegakkan Versi Minimum TLS 1.2
<a name="security-enforcing-tls"></a>

Untuk menambahkan peningkatan keamanan saat berkomunikasi dengan AWS layanan, Anda harus mengonfigurasi penggunaan TLS 1.2 atau yang lebih baru. AWS ParallelCluster Saat Anda menggunakan AWS ParallelCluster, Python digunakan untuk mengatur versi TLS.

Untuk memastikan tidak AWS ParallelCluster menggunakan versi TLS lebih awal dari TLS 1.2, Anda mungkin perlu mengkompilasi ulang OpenSSL untuk menerapkan minimum ini dan kemudian mengkompilasi ulang Python untuk menggunakan OpenSSL yang baru dibangun. 

## Tentukan Protokol yang Didukung Saat Ini
<a name="enforcing-tls-supported"></a>

Pertama, buat sertifikat yang ditandatangani sendiri untuk digunakan untuk server pengujian dan SDK Python menggunakan OpenSSL.

```
$ openssl req -subj '/CN=localhost' -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365
```

Kemudian putar server uji menggunakan OpenSSL.

```
$ openssl s_server -key key.pem -cert cert.pem -www
```

Di jendela terminal baru, buat lingkungan virtual dan instal Python SDK.

```
$ python3 -m venv test-env
source test-env/bin/activate
pip install botocore
```

Buat skrip Python baru bernama `check.py` yang menggunakan pustaka HTTP dasar SDK.

```
$ import urllib3
URL = 'https://localhost:4433/'

http = urllib3.PoolManager(
ca_certs='cert.pem',
cert_reqs='CERT_REQUIRED',
)
r = http.request('GET', URL)
print(r.data.decode('utf-8'))
```

Jalankan skrip baru Anda.

```
$ python check.py
```

Ini menampilkan detail tentang koneksi yang dibuat. Cari “Protocol:" di output. Jika outputnya adalah "TLSv1.2" atau yang lebih baru, SDK default ke TLS v1.2 atau yang lebih baru. Jika ini adalah versi sebelumnya, Anda perlu mengkompilasi ulang OpenSSL dan mengkompilasi ulang Python.

Namun, bahkan jika instalasi Python Anda default ke TLS v1.2 atau yang lebih baru, Python masih mungkin melakukan negosiasi ulang ke versi lebih awal dari TLS v1.2 jika server tidak mendukung TLS v1.2 atau yang lebih baru. Untuk memeriksa bahwa Python tidak secara otomatis melakukan negosiasi ulang ke versi sebelumnya, restart server pengujian dengan yang berikut ini.

```
$ openssl s_server -key key.pem -cert cert.pem -no_tls1_3 -no_tls1_2 -www
```

Jika Anda menggunakan versi OpenSSL yang lebih lama, Anda mungkin tidak memiliki `-no_tls_3` flag yang tersedia. Jika ini masalahnya, hapus bendera karena versi OpenSSL yang Anda gunakan tidak mendukung TLS v1.3. Kemudian jalankan kembali skrip Python.

```
$ python check.py
```

Jika instalasi Python Anda dengan benar tidak menegosiasikan ulang untuk versi yang lebih awal dari TLS 1.2, Anda akan menerima kesalahan SSL.

```
$ urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='localhost', port=4433): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: UNSUPPORTED_PROTOCOL] unsupported protocol (_ssl.c:1108)')))
```

Jika Anda dapat membuat koneksi, Anda perlu mengkompilasi ulang OpenSSL dan Python untuk menonaktifkan negosiasi protokol lebih awal dari TLS v1.2.

## Kompilasi OpenSSL dan Python
<a name="enforcing-tls-compile"></a>

Untuk memastikan bahwa AWS ParallelCluster tidak bernegosiasi untuk apa pun yang lebih awal dari TLS 1.2, Anda perlu mengkompilasi ulang OpenSSL dan Python. Untuk melakukan ini, salin konten berikut untuk membuat skrip dan menjalankannya.

```
#!/usr/bin/env bash
set -e

OPENSSL_VERSION="1.1.1d"
OPENSSL_PREFIX="/opt/openssl-with-min-tls1_2"
PYTHON_VERSION="3.8.1"
PYTHON_PREFIX="/opt/python-with-min-tls1_2"


curl -O "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz"
tar -xzf "openssl-$OPENSSL_VERSION.tar.gz"
cd openssl-$OPENSSL_VERSION
./config --prefix=$OPENSSL_PREFIX no-ssl3 no-tls1 no-tls1_1 no-shared
make > /dev/null
sudo make install_sw > /dev/null


cd /tmp
curl -O "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz"
tar -xzf "Python-$PYTHON_VERSION.tgz"
cd Python-$PYTHON_VERSION
./configure --prefix=$PYTHON_PREFIX --with-openssl=$OPENSSL_PREFIX --disable-shared > /dev/null
make > /dev/null
sudo make install > /dev/null
```

Ini mengkompilasi versi Python yang memiliki OpenSSL yang ditautkan secara statis yang tidak secara otomatis menegosiasikan apa pun lebih awal dari TLS 1.2. Ini juga menginstal OpenSSL di `/opt/openssl-with-min-tls1_2` direktori dan menginstal Python di direktori. `/opt/python-with-min-tls1_2` Setelah Anda menjalankan skrip ini, konfirmasikan instalasi versi baru Python.

```
$ /opt/python-with-min-tls1_2/bin/python3 --version
```

Ini harus mencetak yang berikut ini.

```
Python 3.8.1
```

Untuk mengonfirmasi versi baru Python ini tidak menegosiasikan versi lebih awal dari TLS 1.2, jalankan kembali langkah-langkah dari menggunakan versi Python [Tentukan Protokol yang Didukung Saat Ini](#enforcing-tls-supported) yang baru diinstal (yaitu,). `/opt/python-with-min-tls1_2/bin/python3`

# Mengkonfigurasi grup keamanan untuk lingkungan terbatas
<a name="security-groups-configuration"></a>

Secara default, AWS ParallelCluster membuat dan mengonfigurasi grup keamanan yang memungkinkan semua lalu lintas antar node cluster. Di lingkungan yang sangat terbatas, Anda mungkin perlu membatasi akses jaringan hanya ke port yang diperlukan untuk operasi cluster. Bagian ini menjelaskan cara mengonfigurasi grup keamanan khusus dengan akses terbatas untuk AWS ParallelCluster penerapan Anda.

## Ikhtisar grup keamanan
<a name="security-groups-configuration-overview"></a>

AWS ParallelCluster menggunakan grup keamanan untuk mengontrol lalu lintas jaringan antara node kepala, node komputasi, dan node login (jika dikonfigurasi). Secara default, ketika AWS ParallelCluster membuat cluster, itu menciptakan grup keamanan yang memungkinkan semua lalu lintas antar node dalam cluster. Di lingkungan dengan persyaratan keamanan yang ketat, Anda dapat menyediakan grup keamanan khusus yang membatasi lalu lintas hanya ke port yang diperlukan.

Grup keamanan dapat dikonfigurasi di bagian berikut dari konfigurasi klaster Anda:
+ [`HeadNode`/`Networking`](HeadNode-v3.md#HeadNode-v3-Networking)- Mengontrol akses ke dan dari node kepala
+ [`Scheduling`/`SlurmQueues`/`Networking`](Scheduling-v3.md#Scheduling-v3-SlurmQueues-Networking)- Mengontrol akses ke dan dari node komputasi
+ [`LoginNodes`](LoginNodes-v3.md)- Mengontrol akses ke dan dari node login (jika dikonfigurasi)

Untuk masing-masing bagian ini, Anda dapat menentukan:
+ `SecurityGroups`- Menggantikan grup keamanan default yang AWS ParallelCluster akan membuat
+ `AdditionalSecurityGroups`- Menambahkan grup keamanan selain yang default yang dibuat oleh AWS ParallelCluster

## Port yang diperlukan untuk operasi cluster
<a name="security-groups-configuration-required-ports"></a>

Saat mengonfigurasi grup keamanan khusus, Anda harus memastikan bahwa port berikut terbuka di antara node yang sesuai:


**Port yang diperlukan untuk node kepala**  

| Port | Protokol | Arahan | Tujuan | 
| --- | --- | --- | --- | 
| 22 | TCP | Ke dalam | Akses SSH ke node kepala (dari rentang IP yang diizinkan) | 
| 6817-6819 | TCP | Ke dalam | Port pengontrol slurm (dari node komputasi dan login) | 
| 6817-6819 | TCP | Ke luar | Port pengontrol slurm (untuk menghitung dan login node) | 
| 8443 | TCP | Ke dalam | NICE DCV (jika diaktifkan, dari rentang IP yang diizinkan) | 
| 111, 2049 | TCP/UDP | Ke dalam | NFS (dari node komputasi dan login, jika menggunakan NFS untuk penyimpanan bersama) | 
| 443 | TCP | Ke luar | Akses HTTPS ke AWS layanan (jika tidak menggunakan titik akhir VPC) | 


**Port yang diperlukan untuk node komputasi**  

| Port | Protokol | Arahan | Tujuan | 
| --- | --- | --- | --- | 
| 22 | TCP | Ke dalam | Akses SSH (dari node kepala dan node login) | 
| 6818 | TCP | Ke dalam | Port daemon slurm (dari simpul kepala) | 
| 6817-6819 | TCP | Ke luar | Port pengontrol slurm (ke node kepala) | 
| 111, 2049 | TCP/UDP | Ke luar | NFS (ke node kepala, jika menggunakan NFS untuk penyimpanan bersama) | 
| 443 | TCP | Ke luar | Akses HTTPS ke AWS layanan (jika tidak menggunakan titik akhir VPC) | 

Jika Anda menggunakan EFA (Elastic Fabric Adapter), Anda juga harus mengizinkan semua lalu lintas antara node komputasi yang mengaktifkan EFA:
+ Semua lalu lintas TCP dan UDP antara node komputasi dengan EFA
+ Semua lalu lintas pada perangkat EFA antara node komputasi dengan EFA

**catatan**  
Jika Anda menggunakan sistem penyimpanan bersama seperti FSx untuk Lustre, Amazon EFS, atau solusi penyimpanan lainnya, Anda harus memastikan bahwa port yang sesuai juga terbuka untuk layanan tersebut.

## Membuat grup keamanan khusus
<a name="security-groups-configuration-custom"></a>

Untuk membuat grup keamanan khusus untuk AWS ParallelCluster penerapan Anda, ikuti langkah-langkah berikut:

1. Buat grup keamanan untuk node kepala, node komputasi, dan node login (jika ada) menggunakan AWS Management Console, AWS CLI, atau. AWS CloudFormation

1. Konfigurasikan aturan grup keamanan untuk mengizinkan hanya lalu lintas yang diperlukan seperti yang diuraikan di bagian sebelumnya.

1. Referensikan grup keamanan ini di file konfigurasi klaster Anda.

Berikut adalah contoh cara membuat grup keamanan menggunakan AWS CLI:

```
# Create security group for head node
aws ec2 create-security-group \
  --group-name pcluster-head-node-sg \
  --description "Security group for ParallelCluster head node" \
  --vpc-id vpc-12345678

# Create security group for compute nodes
aws ec2 create-security-group \
  --group-name pcluster-compute-node-sg \
  --description "Security group for ParallelCluster compute nodes" \
  --vpc-id vpc-12345678

# Add rules to allow necessary traffic between head and compute nodes
# (Add specific rules based on the required ports listed above)
```

## Mengkonfigurasi grup keamanan dalam konfigurasi cluster
<a name="security-groups-configuration-cluster-config"></a>

Setelah membuat grup keamanan kustom, Anda dapat mereferensikannya di file konfigurasi cluster Anda:

```
# Example cluster configuration with custom security groups
HeadNode:
  ...
  Networking:
    SubnetId: subnet-12345678
    SecurityGroups:
      - sg-headnode12345  # Custom security group for head node
    # Or use AdditionalSecurityGroups if you want to keep the default security groups
    # AdditionalSecurityGroups:
    #   - sg-additional12345
  ...

Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: queue1
      ...
      Networking:
        SubnetIds:
          - subnet-12345678
        SecurityGroups:
          - sg-computenode12345  # Custom security group for compute nodes
        # Or use AdditionalSecurityGroups if you want to keep the default security groups
        # AdditionalSecurityGroups:
        #   - sg-additional12345
      ...

# If using login nodes
LoginNodes:
  Pools:
    - Name: login-pool
      ...
      Networking:
        SubnetIds:
          - subnet-12345678
        SecurityGroups:
          - sg-loginnode12345  # Custom security group for login nodes
        # Or use AdditionalSecurityGroups if you want to keep the default security groups
        # AdditionalSecurityGroups:
        #   - sg-additional12345
      ...
```

Saat menggunakan`SecurityGroups`, hanya AWS ParallelCluster akan menggunakan grup keamanan yang Anda tentukan, menggantikan yang default. Saat menggunakan`AdditionalSecurityGroups`, AWS ParallelCluster akan menggunakan kedua grup keamanan default yang dibuatnya dan yang tambahan yang Anda tentukan.

**Awas**  
Jika Anda mengaktifkan [Elastic Fabric Adapter (EFA)](Scheduling-v3.md#yaml-Scheduling-SlurmQueues-ComputeResources-Efa) untuk instans komputasi, pastikan instans berkemampuan EFA Anda adalah anggota grup keamanan yang memungkinkan semua lalu lintas masuk dan keluar ke dirinya sendiri. Ini diperlukan agar EFA berfungsi dengan baik.

## Menggunakan titik akhir VPC di lingkungan terbatas
<a name="security-groups-configuration-vpc-endpoints"></a>

Di lingkungan yang sangat terbatas, Anda mungkin ingin menyebarkan AWS ParallelCluster di subnet tanpa akses internet. Dalam hal ini, Anda harus mengonfigurasi titik akhir VPC untuk memungkinkan cluster berkomunikasi dengan layanan. AWS Untuk petunjuk mendetail, lihat [AWS ParallelCluster dalam satu subnet tanpa akses internet](aws-parallelcluster-in-a-single-public-subnet-no-internet-v3.md).

Saat menggunakan titik akhir VPC, pastikan grup keamanan Anda mengizinkan lalu lintas ke dan dari titik akhir VPC. Anda dapat melakukan ini dengan menambahkan grup keamanan yang terkait dengan titik akhir VPC ke `AdditionalSecurityGroups` konfigurasi untuk node kepala dan node komputasi Anda.

```
HeadNode:
  ...
  Networking:
    SubnetId: subnet-1234567890abcdef0
    AdditionalSecurityGroups:
      - sg-abcdef01234567890  # Security group that enables communication with VPC endpoints
  ...

Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - ...
      Networking:
        SubnetIds:
          - subnet-1234567890abcdef0
        AdditionalSecurityGroups:
          - sg-1abcdef01234567890  # Security group that enables communication with VPC endpoints
```

## Praktik terbaik untuk konfigurasi grup keamanan
<a name="security-groups-configuration-best-practices"></a>

Saat mengonfigurasi grup keamanan AWS ParallelCluster di lingkungan terbatas, pertimbangkan praktik terbaik berikut:
+ **Prinsip hak istimewa terkecil**: Hanya buka port yang diperlukan untuk operasi cluster.
+ **Gunakan referensi grup keamanan**: Jika memungkinkan, gunakan referensi grup keamanan (memungkinkan lalu lintas dari grup keamanan lain) daripada blok CIDR untuk membatasi lalu lintas antar komponen cluster.
+ **Batasi akses SSH**: Batasi akses SSH ke node kepala hanya untuk rentang IP yang membutuhkannya menggunakan konfigurasi [`HeadNode`//`Ssh`](HeadNode-v3.md#yaml-HeadNode-Ssh-AllowedIps). `AllowedIps`
+ **Batasi akses DCV**[: Jika menggunakan NICE DCV, batasi akses hanya ke rentang IP yang membutuhkannya menggunakan `HeadNode` konfigurasi//. `Dcv``AllowedIps`](HeadNode-v3.md#yaml-HeadNode-Dcv-AllowedIps)
+ **Uji secara menyeluruh**: Setelah mengonfigurasi grup keamanan khusus, uji secara menyeluruh semua fungsionalitas klaster untuk memastikan bahwa semua jalur komunikasi yang diperlukan berfungsi.
+ **Dokumentasikan konfigurasi Anda**: Pertahankan dokumentasi konfigurasi grup keamanan Anda, termasuk port mana yang terbuka dan mengapa diperlukan.

## Memecahkan masalah grup keamanan
<a name="security-groups-configuration-troubleshooting"></a>

Jika Anda mengalami masalah setelah mengonfigurasi grup keamanan khusus, pertimbangkan langkah-langkah pemecahan masalah berikut:
+ **Periksa log klaster**: Tinjau log cluster di CloudWatch Log untuk mengetahui kesalahan koneksi apa pun.
+ **Verifikasi aturan grup keamanan**: Pastikan semua port yang diperlukan terbuka di antara node yang sesuai.
+ **Uji konektivitas**: Gunakan alat seperti `telnet` atau `nc` untuk menguji konektivitas antar node pada port tertentu.
+ **Perluas aturan untuk sementara**: Jika Anda mengalami kesulitan mengidentifikasi port mana yang diperlukan, izinkan sementara semua lalu lintas antar node cluster dan kemudian secara bertahap batasi saat Anda mengidentifikasi port yang diperlukan.
+ **Periksa konfigurasi titik akhir VPC**: Jika Anda menggunakan titik akhir VPC, pastikan bahwa mereka dikonfigurasi dengan benar dan bahwa grup keamanan mengizinkan lalu lintas ke dan dari mereka.

Jika Anda terus mengalami masalah, Anda dapat kembali menggunakan grup keamanan default yang dibuat AWS ParallelCluster dengan menghapus `SecurityGroups` konfigurasi dari file konfigurasi cluster Anda.