

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

# Kontrol akses berbasis atribut untuk Amazon SQS
<a name="sqs-abac"></a>

## Apa itu ABAC?
<a name="sqs-abac-whatis"></a>

Attribute-based access control (ABAC) adalah proses otorisasi yang mendefinisikan izin berdasarkan tag yang dilampirkan ke pengguna dan sumber daya. AWS ABAC menyediakan kontrol akses yang terperinci dan fleksibel berdasarkan atribut dan nilai, mengurangi risiko keamanan yang terkait dengan kebijakan berbasis peran yang dikonfigurasi ulang, dan memusatkan audit dan manajemen kebijakan akses. Untuk detail selengkapnya tentang ABAC, lihat [Untuk apa ABAC AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) di Panduan Pengguna *IAM*.

Amazon SQS mendukung ABAC dengan memungkinkan Anda mengontrol akses ke antrian Amazon SQS berdasarkan tag dan alias yang terkait dengan antrian Amazon SQS. Kunci kondisi tag dan alias yang mengaktifkan ABAC di Amazon SQS memberi otorisasi kepada prinsipal IAM untuk menggunakan antrian Amazon SQS tanpa mengedit kebijakan atau mengelola hibah. Untuk mempelajari selengkapnya tentang kunci kondisi ABAC, lihat [Kunci kondisi untuk Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html#amazonsqs-policy-keys) SQS di Referensi *Otorisasi Layanan*.

Dengan ABAC, Anda dapat menggunakan tag untuk mengonfigurasi izin dan kebijakan akses IAM untuk antrian Amazon SQS, yang membantu Anda menskalakan pengelolaan izin. Anda dapat membuat kebijakan izin tunggal di IAM menggunakan tag yang ditambahkan ke setiap peran bisnis—tanpa harus memperbarui kebijakan setiap kali menambahkan sumber daya baru. Anda juga dapat melampirkan tag ke prinsipal IAM untuk membuat kebijakan ABAC. Anda dapat mendesain kebijakan ABAC untuk mengizinkan operasi Amazon SQS saat tag pada peran pengguna IAM yang membuat panggilan cocok dengan tag antrean Amazon SQS. Untuk mempelajari lebih lanjut tentang menandai AWS, lihat [Strategi AWS Penandaan](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) dan. [Tag alokasi biaya Amazon SQS](sqs-queue-tags.md)

**catatan**  
ABAC untuk Amazon SQS saat ini tersedia di AWS semua Wilayah Komersil tempat Amazon SQS tersedia, dengan pengecualian berikut:   
Asia Pasifik (Hyderabad)
Asia Pacific (Melbourne)
Eropa (Spanyol) 
Europe (Zurich)

## Mengapa saya harus menggunakan ABAC di Amazon SQS?
<a name="sqs-abac-benefits"></a>

Berikut adalah beberapa manfaat menggunakan ABAC di Amazon SQS:
+ ABAC untuk Amazon SQS memerlukan kebijakan izin yang lebih sedikit. Anda tidak perlu membuat kebijakan yang berbeda untuk fungsi pekerjaan yang berbeda. Anda dapat menggunakan tag sumber daya dan permintaan yang berlaku untuk lebih dari satu antrian, yang mengurangi overhead operasional.
+ Gunakan ABAC untuk menskalakan tim dengan cepat. Izin untuk sumber daya baru secara otomatis diberikan berdasarkan tag ketika sumber daya diberi tag dengan tepat selama pembuatannya.
+ Gunakan izin pada prinsipal IAM untuk membatasi akses sumber daya. Anda dapat membuat tag untuk prinsipal IAM dan menggunakannya untuk membatasi akses ke tindakan tertentu yang cocok dengan tag pada prinsipal IAM. Ini membantu Anda mengotomatiskan proses pemberian izin permintaan.
+ Lacak siapa yang mengakses sumber daya Anda. Anda dapat menentukan identitas sesi dengan melihat atribut pengguna di AWS CloudTrail.

**Topics**
+ [Apa itu ABAC?](#sqs-abac-whatis)
+ [Mengapa saya harus menggunakan ABAC di Amazon SQS?](#sqs-abac-benefits)
+ [Penandaan untuk kontrol akses](sqs-abac-tagging-resource-control.md)
+ [Membuat pengguna IAM dan antrian Amazon SQS](sqs-abac-creating-queues.md)
+ [Menguji kontrol akses berbasis atribut](sqs-abac-testing-access-control.md)

# Penandaan untuk kontrol akses di Amazon SQS
<a name="sqs-abac-tagging-resource-control"></a>

Berikut ini adalah contoh penggunaan tag untuk kontrol akses di Amazon SQS. Kebijakan IAM membatasi pengguna IAM untuk semua tindakan Amazon SQS untuk semua antrian yang menyertakan tag sumber daya dengan lingkungan kunci dan produksi nilai. Untuk informasi selengkapnya, lihat [Kontrol akses berbasis atribut dengan tag dan Organizations AWS](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging_abac.html). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessForProd",
      "Effect": "Allow",
      "Action": "sqs:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/environment": "prod"
        }
      }
    }
  ]
}
```

------

# Membuat pengguna IAM dan antrian Amazon SQS
<a name="sqs-abac-creating-queues"></a>

Contoh berikut menjelaskan cara membuat kebijakan ABAC untuk mengontrol akses ke Amazon SQS menggunakan Konsol Manajemen AWS dan. CloudFormation

## Menggunakan Konsol Manajemen AWS
<a name="sqs-abac-creating-queues-console"></a>

**Buat pengguna IAM**

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

1. Pilih **Pengguna** dari panel navigasi kiri.

1. Pilih **Tambah Pengguna** dan masukkan nama di kotak teks **Nama pengguna**.

1. Pilih **tombol Akses - kotak Akses terprogram** dan pilih **Berikutnya:Izin**.

1. Pilih **Selanjutnya: Tag**.

1. Tambahkan kunci tag sebagai `environment` dan nilai tag sebagai`beta`.

1. **Pilih **Berikutnya:Tinjau** dan kemudian pilih Buat pengguna.**

1. Salin dan simpan ID kunci akses dan kunci akses rahasia di lokasi yang aman.

**Tambahkan izin pengguna IAM**

1. Pilih pengguna IAM yang Anda buat.

1. Pilih **Tambahkan kebijakan inline**.

1. Pada tab JSON, tempel kebijakan berikut:

1. Pilih **Tinjau kebijakan**.

1. Pilih **Buat kebijakan**.

## Menggunakan AWS CloudFormation
<a name="sqs-abac-creating-queues-cf"></a>

Gunakan contoh CloudFormation template berikut untuk membuat pengguna IAM dengan kebijakan inline yang dilampirkan dan antrean Amazon SQS:

```
AWSTemplateFormatVersion: "2010-09-09"
Description: "CloudFormation template to create IAM user with custom inline policy"
Resources:
    IAMPolicy:
        Type: "AWS::IAM::Policy"
        Properties:
            PolicyDocument: |
                {
                    "Version": "2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Sid": "AllowAccessForSameResTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:SendMessage",
                                "sqs:ReceiveMessage",
                                "sqs:DeleteMessage"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "AllowAccessForSameReqTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:CreateQueue",
                                "sqs:DeleteQueue",
                                "sqs:SetQueueAttributes",
                                "sqs:tagqueue"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:RequestTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "DenyAccessForProd",
                            "Effect": "Deny",
                            "Action": "sqs:*",
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/stage": "prod"
                                }
                            }
                        }
                    ]
                }
                
            Users: 
              - "testUser"
            PolicyName: tagQueuePolicy

    IAMUser:
        Type: "AWS::IAM::User"
        Properties:
            Path: "/"
            UserName: "testUser"
            Tags: 
              - 
                Key: "environment"
                Value: "beta"
```

# Menguji kontrol akses berbasis atribut di Amazon SQS
<a name="sqs-abac-testing-access-control"></a>

Contoh berikut menunjukkan cara menguji kontrol akses berbasis atribut di Amazon SQS.

## Buat antrian dengan kunci tag disetel ke lingkungan dan nilai tag disetel ke prod
<a name="sqs-abac-testing-access-control-create-queue"></a>

Jalankan perintah AWS CLI ini untuk menguji pembuatan antrian dengan kunci tag disetel ke lingkungan dan nilai tag disetel ke prod. Jika Anda tidak memiliki AWS CLI, Anda dapat [mengunduh dan mengonfigurasinya](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) untuk mesin Anda.

```
aws sqs create-queue --queue-name prodQueue —region us-east-1 —tags "environment=prod"
```

Anda menerima `AccessDenied` kesalahan dari titik akhir Amazon SQS:

```
An error occurred (AccessDenied) when calling the CreateQueue operation: Access to the resource <queueUrl> is denied.
```

Ini karena nilai tag pada pengguna IAM tidak cocok dengan tag yang diteruskan dalam panggilan [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)API. Ingat bahwa kami menerapkan tag ke pengguna IAM dengan kunci yang disetel ke `environment` dan nilai yang disetel ke`beta`.

## Buat antrian dengan kunci tag disetel ke lingkungan dan nilai tag disetel ke beta
<a name="sqs-abac-testing-access-control-create-env"></a>

Jalankan perintah CLI ini untuk menguji pembuatan antrian dengan kunci tag disetel ke `environment` dan nilai tag disetel ke. `beta`

```
aws sqs create-queue --queue-name betaQueue —region us-east-1 —tags "environment=beta"
```

Anda menerima pesan yang mengonfirmasi keberhasilan pembuatan antrian, mirip dengan yang di bawah ini.

```
{
"QueueUrl": "<queueUrl>“
}
```

## Mengirim pesan ke antrian
<a name="sqs-abac-testing-access-control-sending-message"></a>

Jalankan perintah CLI ini untuk menguji pengiriman pesan ke antrian.

```
aws sqs send-message --queue-url <queueUrl> --message-body testMessage
```

Respons menunjukkan pengiriman pesan yang berhasil ke antrean Amazon SQS. Izin pengguna IAM memungkinkan Anda mengirim pesan ke antrian yang memiliki `beta` tag. Tanggapan termasuk `MD5OfMessageBody` dan `MessageId` berisi pesan.

```
{
"MD5OfMessageBody": "<MD5OfMessageBody>",
"MessageId": "<MessageId>"
}
```