

# Kontrol Akses Data
<a name="data-access-controls"></a>

Pasal 25 GDPR menyatakan bahwa pengontrol “harus menerapkan langkah-langkah teknis dan organisasional yang tepat untuk memastikan bahwa, secara default, hanya data pribadi yang diperlukan untuk setiap tujuan spesifik pemrosesan yang diproses.” Mekanisme kontrol akses AWS berikut dapat membantu pelanggan mematuhi persyaratan ini dengan hanya mengizinkan administrator, pengguna, dan aplikasi yang sah untuk mendapatkan akses ke sumber daya AWS dan data pelanggan. 

# AWS Identity and Access Management
<a name="aws-identity-and-access-management"></a>

Saat Anda membuat akun AWS, akun pengguna *root* dibuat secara otomatis untuk akun AWS Anda. Akun pengguna ini memiliki akses lengkap ke semua layanan dan sumber daya AWS Anda di akun AWS Anda. Alih-alih menggunakan akun ini untuk tugas sehari-hari, Anda seharusnya hanya menggunakannya untuk awalnya membuat peran dan akun pengguna tambahan, serta untuk aktivitas administratif yang memerlukannya. AWS merekomendasikan agar Anda menerapkan prinsip hak akses paling rendah sejak awal: tentukan akun dan peran pengguna yang berbeda untuk tugas yang berbeda, dan tentukan set izin minimum yang diperlukan untuk menyelesaikan setiap tugas. Pendekatan ini adalah mekanisme untuk menyesuaikan konsep utama yang diberlakukan di GDPR: perlindungan data secara desain. [AWS Identity and Access Management](https://aws.amazon.com/iam/)(IAM) adalah layanan web yang dapat Anda gunakan untuk mengontrol akses ke sumber daya AWS Anda dengan aman. 

Pengguna dan peran menentukan identitas IAM dengan izin tertentu. Pengguna yang berwenang dapat mengambil IAM role untuk melakukan tugas-tugas tertentu. Kredensial sementara dibuat ketika peran diambil. Misalnya, Anda dapat menggunakan IAM role untuk menyediakan aplikasi yang berjalan dengan aman di [Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2) (Amazon EC2) dengan kredensial sementara yang diperlukan untuk mengakses sumber daya AWS lainnya, seperti bucket Amazon S3, dan [Amazon Relational Database Service](https://aws.amazon.com/rds/) (Amazon RDS) atau basis data [Amazon DynamoDB](https://aws.amazon.com/dynamodb). Demikian pula, [peran eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html) menyediakan izin yang diperlukan ke fungsi [AWS Lambda](https://aws.amazon.com/lambda/) untuk mengakses Layanan AWS dan sumber daya lainnya, seperti [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) untuk streaming log atau membaca pesan dari antrean [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) (Amazon SQS). Saat membuat peran, Anda menambahkan kebijakan untuk menentukan otorisasi.

Untuk membantu pelanggan memantau kebijakan sumber daya dan mengidentifikasi sumber daya yang memiliki akses publik atau lintas akun yang mungkin tidak mereka inginkan, [IAM Access Analyzer](https://aws.amazon.com/iam) dapat diaktifkan untuk menghasilkan temuan komprehensif yang mengidentifikasi sumber daya yang dapat diakses dari luar akun AWS. IAM Access Analyzer mengevaluasi kebijakan sumber daya dengan logika dan inferensi matematika untuk menentukan jalur akses yang diizinkan oleh kebijakan. IAM Access Analyzer terus memantau kebijakan baru atau yang diperbarui, dan menganalisis izin yang diberikan menggunakan kebijakan untuk IAM role—tetapi juga untuk sumber daya layanan seperti bucket Amazon S3, kunci [AWS Key Management Service](https://aws.amazon.com/kms/) (AWS KMS), antrean Amazon SQS, dan fungsi Lambda.

[Access Analyzer for S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/access-analyzer.html) memberi tahu Anda ketika bucket dikonfigurasi untuk memungkinkan akses bagi siapa pun di internet atau akun AWS lainnya, termasuk akun AWS di luar organisasi Anda. Saat meninjau bucket berisiko di Access Analyzer untuk Amazon S3, Anda dapat memblokir semua akses publik ke bucket dengan sekali klik. AWS menyarankan agar Anda memblokir semua akses ke bucket Anda kecuali Anda memerlukan akses publik untuk mendukung kasus penggunaan tertentu. Sebelum Anda memblokir semua akses publik, pastikan bahwa aplikasi Anda akan terus bekerja dengan benar tanpa akses publik. Untuk informasi selengkapnya, lihat [Menggunakan Amazon S3 untuk Memblokir Akses Publik](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html).

IAM juga menyediakan informasi yang terakhir diakses untuk membantu Anda mengidentifikasi izin yang tidak digunakan sehingga Anda dapat menghapusnya dari entitas utama terkait. Menggunakan informasi yang terakhir diakses, Anda dapat menyempurnakan kebijakan Anda dan mengizinkan akses hanya ke layanan dan tindakan yang diperlukan. Ini membantu dalam meningkatkan kepatuhan dan menerapkan [praktik terbaik hak akses paling rendah.](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) Anda dapat melihat informasi yang terakhir diakses untuk entitas atau kebijakan yang ada di IAM, atau di seluruh lingkungan [AWS Organizations](https://aws.amazon.com/organizations/).

# Token Akses Sementara Melalui AWS STS
<a name="temporary-access-tokens-through-aws-sts"></a>

 Anda dapat menggunakan [AWS Security Token Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) (AWS STS) untuk membuat dan menyediakan kredensial keamanan sementara bagi pengguna tepercaya yang memberikan akses ke sumber daya AWS Anda. Kredensial keamanan sementara bekerja hampir identik dengan kredensial kunci akses jangka panjang yang dapat digunakan pengguna IAM Anda, dengan perbedaan berikut: 
+  Kredensial keamanan sementara ditujukan untuk penggunaan jangka pendek. Anda dapat mengonfigurasi jumlah waktu yang valid, dari 15 menit hingga maksimal 12 jam. Setelah kredensial sementara kedaluwarsa, AWS tidak mengenalinya atau mengizinkan akses apa pun dari permintaan API yang dibuat dengan kredensial ini.
+  Kredensial keamanan sementara tidak disimpan dengan akun pengguna. Sebagai gantinya, kredensial ini dihasilkan secara dinamis dan diberikan kepada pengguna ketika diminta. Ketika (atau sebelum) kredensial keamanan sementara kedaluwarsa, pengguna dapat meminta kredensial baru, jika pengguna tersebut memiliki izin untuk melakukannya. 

 Perbedaan ini memberikan keuntungan sebagai berikut saat Anda menggunakan kredensial sementara: 
+  Anda tidak perlu mendistribusikan atau menanamkan kredensial keamanan AWS jangka panjang dengan aplikasi. 
+  Kredensial sementara adalah dasar untuk peran dan federasi identitas. Anda dapat menyediakan akses bagi pengguna ke sumber daya AWS Anda dengan mendefinisikan identitas AWS sementara untuk mereka. 
+  Kredensial keamanan sementara memiliki masa aktif terbatas yang dapat disesuaikan. Karena itu, Anda tidak perlu merotasi kredensial ini atau secara eksplisit mencabutnya ketika sudah tidak lagi diperlukan. Setelah kredensial keamanan sementara berakhir, kredensial ini tidak dapat digunakan kembali. Anda dapat menentukan jumlah waktu maksimum validitas kredensial. 

# Autentikasi Multi-Faktor (MFA)
<a name="multi-factor-authentication"></a>

Untuk keamanan ekstra, Anda dapat menambahkan autentikasi dua faktor ke akun AWS Anda dan pengguna IAM. Dengan autentikasi multi-faktor (MFA) diaktifkan, ketika Anda masuk ke [Konsol Manajemen AWS](https://aws.amazon.com/console/), Anda diminta memasukkan nama pengguna dan kata sandi Anda (faktor pertama), serta respons autentikasi dari perangkat AWS MFA Anda (faktor kedua). Anda dapat mengaktifkan MFA untuk akun AWS dan untuk pengguna IAM perorangan yang telah dibuat di akun Anda. Anda juga dapat menggunakan MFA untuk mengontrol akses ke API layanan AWS.

 Misalnya, Anda dapat menentukan kebijakan yang memungkinkan akses penuh ke semua operasi API AWS di Amazon EC2, tetapi secara eksplisit menolak akses ke operasi API tertentu—seperti `StopInstances` dan `TerminateInstances`—jika pengguna tidak diautentikasi dengan MFA. 

```
        {
         “Version”: “2012-10-17”,
         “Statement”: [
             {
                “Sid”: “AllowAllActionsForEC2”,
                “Effect”: “Allow”,
                “Action”: “ec2:*”,
                “Resource”: “*”
             },
            {
                “Sid”: “DenyStopAndTerminateWhenMFAIsNotPResent”,
                “Effect”: “Deny”,
                “Action”: [
                    “ec2:StopInstances”,
                    “ec2:TerminateInstances”
               ],
               “Resource”: “*”,
               “Conditions”: {
                   “BoolIfExists”: {“aws:MultiFactorAuthPresent”:false}
                }
            }
       }
}
```

Untuk menambahkan lapisan keamanan tambahan ke bucket Amazon S3, Anda dapat mengonfigurasi[ MFA Delete](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMFADelete.html), yang memerlukan autentikasi tambahan untuk mengubah status versioning bucket dan menghapus versi objek secara permanen. MFA Delete menyediakan keamanan tambahan jika kredensial keamanan Anda bocor.

Untuk menggunakan MFA Delete, Anda dapat menggunakan perangkat keras atau perangkat MFA virtual untuk menghasilkan kode autentikasi. Lihat [halaman Autentikasi Multi-Faktor](https://aws.amazon.com/iam/features/mfa/) untuk daftar perangkat keras atau perangkat MFA virtual yang didukung.

# Akses ke Sumber Daya AWS
<a name="access-to-aws-objects-resources"></a>

Untuk menerapkan akses granular ke sumber daya AWS Anda, Anda dapat memberikan tingkat izin yang berbeda kepada orang yang berbeda untuk sumber daya yang berbeda. Misalnya, Anda dapat memberikan akses lengkap hanya untuk beberapa pengguna ke Amazon EC2, Amazon S3, DynamoDB, [Amazon Redshift](https://aws.amazon.com/redshift/), dan Layanan AWS lainnya. 

Untuk pengguna lain, Anda dapat memberikan akses hanya-baca hanya ke beberapa bucket Amazon S3; izin untuk mengelola hanya beberapa instans Amazon EC2, atau akses hanya ke informasi penagihan Anda. 

 Kebijakan berikut adalah contoh dari satu metode yang dapat Anda gunakan untuk mengizinkan semua tindakan pada bucket Amazon S3 tertentu dan secara eksplisit menolak akses ke setiap layanan AWS yang bukan Amazon S3. 

```
      {
         “Version”: “2012-10-17”,
         “Statement”: [
             {
                “Effect”: “Allow”,
                “Action”: “s3:*”,
                “Resource”: [
                     “arn:aws:s3:::bucket-name”,
                     “arn:aws:s3:::bucket-name/*”
                 ],
              },
              {
                “Effect”: “Deny”,
                “NotAction”: “s3:*”,
                “NotResource”: [
                     “arn:aws:s3:::bucket-name”,
                     “arn:aws:s3:::bucket-name/*”
                 ] 
               }
            ]
}
```

 Anda dapat melampirkan kebijakan ke akun pengguna atau peran. Untuk contoh kebijakan IAM lainnya, lihat [Contoh Kebijakan Berbasis Identitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html). 

# Mendefinisikan Batas untuk Akses Layanan Regional
<a name="defining-boundaries-for-regional-services-access"></a>

Sebagai pelanggan, Anda menjaga kepemilikan konten Anda dan memilih layanan AWS mana yang dapat memproses, menyimpan, dan meng-host konten Anda. AWS tidak mengakses atau menggunakan konten Anda untuk tujuan apa pun tanpa persetujuan Anda. Berdasarkan Model Tanggung Jawab Bersama, Anda memilih Wilayah AWS tempat konten disimpan, memungkinkan Anda men-deploy layanan AWS di lokasi pilihan Anda, sesuai dengan persyaratan geografis spesifik Anda. Misalnya, jika Anda ingin memastikan konten Anda hanya berada di Eropa, Anda dapat memilih untuk men-deploy layanan AWS secara eksklusif di salah satu Wilayah AWS Eropa. 

Kebijakan IAM menyediakan mekanisme sederhana untuk membatasi akses ke layanan di Wilayah tertentu. Anda dapat menambahkan syarat global (`[aws:RequestedRegion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion)`) ke kebijakan IAM yang dilampirkan pada Entitas Utama IAM Anda untuk memberlakukan syarat ini untuk semua layanan AWS. Misalnya, [kebijakan berikut](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-requested-region.html) menggunakan `NotAction` elemen dengan efek `Deny`, yang secara eksplisit menolak akses ke semua tindakan yang tidak tercantum dalam pernyataan jika Wilayah yang diminta bukan Eropa. Tindakan di layanan CloudFront, IAM, [Amazon Route 53](https://aws.amazon.com/route53/), dan [AWS Support](https://aws.amazon.com/premiumsupport/) tidak boleh ditolak karena ini adalah layanan global AWS yang populer. 

```
      {
         “Version”: “2012-10-17”,
         “Statement”: [
             {
                “Sid”: “DenyAllOutsideRequestedRegions”,
                “Effect”: “Deny”,
                “NotAction”: [
                     “cloudfront:*”,
                     “iam:*”,
                     ”route53:*”,
                     “support:*”
                 ],
                 “Resource”: “*”,
                 “Condition”: {
                    “StringNotLike”: {
                        “aws:RequestedRegion”: [
                              “eu-*”
                        ]
                     } 
                  }
            }    
          ]           
}
```

Contoh kebijakan IAM ini juga dapat diimplementasikan sebagai Kebijakan Kontrol Layanan (SCP) di AWS Organizations, yang mendefinisikan batas izin yang diterapkan pada akun AWS atau Unit Organisasi (OU) tertentu dalam suatu organisasi. Hal ini memungkinkan Anda mengontrol akses pengguna ke layanan regional di lingkungan multi-akun yang kompleks.

Kemampuan pembatasan geografis ada untuk Wilayah yang baru diluncurkan. [Wilayah yang diperkenalkan setelah 20 Maret 2019](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html) dinonaktifkan secara default. Anda harus mengaktifkan Wilayah ini sebelum Anda dapat menggunakannya. Jika Wilayah AWS dinonaktifkan secara default, Anda dapat menggunakan Konsol Manajemen AWS untuk mengaktifkan dan menonaktifkan Wilayah. Mengaktifkan dan menonaktifkan Wilayah AWS memungkinkan Anda mengontrol apakah pengguna di akun AWS Anda dapat mengakses sumber daya di Wilayah tersebut. Untuk informasi selengkapnya, lihat [Mengelola Wilayah AWS](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html).

# Kontrol Akses ke Aplikasi Web dan Aplikasi Seluler
<a name="control-access-to-web-applications-and-mobile-apps"></a>

AWS menyediakan layanan untuk mengelola kontrol akses data dalam aplikasi pelanggan. Jika Anda perlu menambahkan fitur login dan kontrol akses pengguna ke aplikasi web dan aplikasi seluler, Anda dapat menggunakan [Amazon Cognito](https://aws.amazon.com/cognito/). [Pool pengguna Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) menyediakan direktori pengguna aman yang dapat diskalakan ke ratusan juta pengguna. Untuk melindungi identitas pengguna, Anda dapat menambahkan autentikasi multi-faktor (MFA) ke pool pengguna Anda. Anda juga dapat menggunakan autentikasi adaptif, yang menggunakan model berbasis risiko untuk memprediksi kapan Anda mungkin memerlukan faktor autentikasi lain. 

Dengan [Amazon Cognito Identity Pools](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) (Identitas Terfederasi), Anda dapat melihat siapa yang mengakses sumber daya Anda dan tempat aksesnya berasal (aplikasi seluler atau aplikasi web). Anda dapat menggunakan informasi ini untuk membuat IAM role dan kebijakan IAM yang mengizinkan atau menolak akses ke sumber daya berdasarkan jenis asal akses (aplikasi seluler atau aplikasi web) dan Penyedia Identitas.