Auto Scaling memungkinkan Anda mengkategorikan dan mengontrol akses ke grup penskalaan menggunakan tag. Anda dapat memberikan izin detail halus kepada satu atau beberapa grup penskalaan yang memiliki tag tertentu. Topik ini menjelaskan cara menggunakan otentikasi berbasis tag untuk mengelola izin Pengguna RAM guna meningkatkan efisiensi manajemen dan mengurangi risiko kebocoran data.
Latar Belakang
-
Tag adalah pengidentifikasi sumber daya cloud. Anda dapat menggunakannya untuk mengkategorikan, mencari, dan mengagregasi sumber daya cloud yang memiliki karakteristik serupa dari berbagai dimensi. Untuk informasi selengkapnya, lihat Tags.
-
Resource Access Management (RAM) memungkinkan Anda mengelola identitas pengguna serta mengontrol akses dan operasi terhadap sumber daya cloud berdasarkan kebijakan. Untuk informasi selengkapnya, lihat What is RAM?.
Dengan menggunakan tag sebagai kondisi dalam kebijakan Resource Access Management (RAM), Anda dapat menerapkan kontrol detail halus terhadap Auto Scaling.
Gambar berikut menunjukkan cara menggunakan tag untuk mengelola akses sumber daya dan izin operasi Pengguna RAM, yang dikenal sebagai otentikasi berbasis tag.
API yang tidak mendukung otentikasi berbasis tag
Setelah Anda menyambungkan kebijakan untuk otentikasi berbasis tag ke Pengguna RAM, otentikasi berbasis tag tidak didukung ketika Pengguna RAM memanggil operasi API berikut untuk mengelola Auto Scaling.
|
API |
Dukungan otentikasi berbasis tag |
|
DescribeRegions |
No |
|
Untuk tugas terjadwal yang tidak dikaitkan dengan grup penskalaan:
|
No |
|
Untuk tugas berbasis peristiwa yang tidak dikaitkan dengan grup penskalaan:
|
No |
Skenario contoh
Topik ini menggunakan skenario berikut untuk menunjukkan cara menerapkan otentikasi berbasis tag.
Asumsikan Anda telah membuat dua grup penskalaan untuk pengembangan game. Setiap grup penskalaan diberi tag berdasarkan lingkungan dan tim. Anda perlu memberikan izin tertentu kepada Pengguna RAM pada grup penskalaan berikut:
|
Grup penskalaan |
Nama |
Tag |
|
Grup penskalaan 1 |
asg-001 |
|
|
Grup penskalaan 2 |
asg-002 |
|
Kebutuhan kontrol akses spesifik adalah sebagai berikut:
-
Skenario 1: Anda tidak dapat membuat grup penskalaan tanpa tag. Grup penskalaan 1 hanya dapat dibuat jika Anda menambahkan tag
environment:testdanteam:game1saat pembuatan. -
Skenario 2: Saat melakukan kueri terhadap grup penskalaan, Anda hanya dapat melihat sumber daya dari grup penskalaan 1, yang dikaitkan dengan tag
environment:testdanteam:game1. -
Skenario 3: Anda hanya diizinkan mengelola sumber daya dalam grup penskalaan 1 (dengan tag
environment:testdanteam:game1), tetapi tidak diizinkan mengelola sumber daya dalam grup penskalaan 2 (dengan tagenvironment:devdanteam:game2).
Prosedur
Sebelum memulai, pastikan Anda telah membuat Pengguna RAM. Untuk informasi selengkapnya, lihat Create a RAM user.
-
Buat dua grup penskalaan.
Untuk informasi selengkapnya, lihat Configure scaling groups. Lihat Example scenario untuk detail tentang grup penskalaan tersebut.
-
Masuk ke RAM console.
-
Buat kebijakan kustom.
Untuk informasi selengkapnya, lihat Create a custom policy.
Anda dapat menetapkan beberapa kondisi tag untuk sumber daya cloud dalam blok
Conditionkebijakan guna membatasi izin melakukan operasi pada sumber daya Auto Scaling. Kondisi otentikasi berbasis tag yang didukung:Kondisi berbasis tag
Deskripsi
acs:RequestTagMemeriksa apakah permintaan mencakup tag tertentu.
Jika permintaan API tidak mencakup parameter tag apa pun, penggunaan
acs:RequestTagakan menyebabkan otentikasi gagal.acs:ResourceTagMemeriksa apakah sumber daya yang ditentukan dalam permintaan berisi tag tertentu.
Jika Anda menggunakan
acs:ResourceTagdalam permintaan API yang tidak berisi parameter ID sumber daya, otentikasi akan gagal.-
Skenario 1: Terapkan tag tertentu saat pembuatan grup penskalaan
Artinya, grup penskalaan 1 hanya dapat dibuat jika tag
environment:testdanteam:game1dikaitkan dengannya saat pembuatan.Kebijakan berikut sesuai dengan skenario ini:
{ "Effect": "Allow", "Action": "ess:Create*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/environment": "test", "acs:RequestTag/team": "game1" } } } -
Skenario 2: Izinkan pengguna hanya melihat grup penskalaan 1
Artinya, jika Anda mengaitkan tag
environment:testdanteam:game1ke grup penskalaan 1, hanya sumber daya grup penskalaan 1 yang dikembalikan saat Anda melakukan kueri terhadap grup penskalaan.Kebijakan berikut sesuai dengan skenario ini:
{ "Effect": "Allow", "Action": "ess:Describe*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/environment": "test", "acs:RequestTag/team": "game1" } } } -
Skenario 3: Izinkan pengguna hanya mengelola grup penskalaan 1 dan tolak akses ke grup penskalaan 2
Misalnya, grup penskalaan 1 dikaitkan dengan tag
environment:testdanteam:game1, sedangkan grup penskalaan 2 dikaitkan dengan tagenvironment:devdanteam:game2.Kebijakan berikut sesuai dengan skenario ini:
{ "Version": "1", "Statement": [ { "Action": "ess:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/environment": "test", "acs:ResourceTag/team": "game1" } } }, { "Action": "ess:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/environment": "dev", "acs:ResourceTag/team": "game2" } } }, { "Effect": "Allow", "Action": [ "ess:DescribeRegions", "ess:CreateScheduledTask", "ess:ModifyScheduledTask", "ess:DescribeScheduledTasks", "ess:DeleteScheduledTask", "ess:CreateAlarm", "ess:DescribeAlarms", "ess:ModifyAlarm", "ess:EnableAlarm", "ess:DeleteAlarm" ], "Resource": "*" } ] }
-
-
Sambungkan kebijakan kustom ke Pengguna RAM.
Untuk informasi selengkapnya, lihat Grant permissions to a RAM user.
-
Verifikasi bahwa kebijakan telah berlaku.
-
Verifikasi Skenario 1 dengan membuat grup penskalaan 1
-
Grup Penskalaan 1 memiliki tag
environment:testdanteam:game1, sehingga dapat dibuat berhasil. -
Jika Anda membuat grup penskalaan tanpa tag yang ditentukan, pembuatan ditolak karena izin tidak mencukupi. Kesalahan berbeda terjadi jika Auto Scaling tidak memiliki izin OpenAPI yang diperlukan: kesalahan
Forbidden.Unauthorizeddikembalikan dengan pesan: Pengguna belum memberikan otorisasi penuh untuk antarmuka OpenAPI ESS. Harap otorisasi dan coba lagi. Dalam kasus ini, berikan izin yang diperlukan dan ulangi operasi tersebut.
-
-
Verifikasi Skenario 2 dengan melakukan kueri terhadap grup penskalaan
-
Untuk grup penskalaan yang memiliki tag
environment:testdanteam:game1, Anda tetap dapat mengambil informasinya dengan melakukan kueri tanpa memfilter berdasarkan tag. -
Jika Anda melakukan kueri terhadap grup penskalaan selain grup penskalaan 1 yang tidak diberi tag
environment:testdanteam:game1, kueri tidak mengembalikan hasil apa pun. -
Jika Anda tidak menentukan grup penskalaan dan hanya mencari tag
environment:testdanteam:game1, kueri mengembalikan semua grup penskalaan yang memiliki tag tersebut.
-
-
Verifikasi Skenario 3 dengan menghapus grup penskalaan
-
Jika grup penskalaan 1 memiliki tag
environment:testdanteam:game1, Anda dapat menghapus grup penskalaan tersebut. -
Jika grup penskalaan tidak dikaitkan dengan tag
environment:testdanteam:game1, atau memiliki tag lain, pesan ditampilkan yang menunjukkan bahwa Anda tidak memiliki izin untuk menghapus grup penskalaan tersebut.
-
-
Dokumen terkait
-
Untuk membuat, melihat, atau menghapus grup penskalaan dengan memanggil operasi API, lihat CreateScalingGroup, DescribeScalingGroups, atau DeleteScalingGroup.
-
Untuk membuat kebijakan kustom dengan memanggil operasi API, lihat CreatePolicy.
-
Untuk memberikan izin kepada Pengguna RAM dengan memanggil operasi API, lihat AttachPolicyToUser.
-
Jika Anda memiliki beberapa grup penskalaan, Anda dapat menggunakan kelompok sumber daya untuk mengelolanya. Untuk informasi selengkapnya, lihat Use resource groups to manage scaling groups.
-
Jika Anda ingin menggunakan otentikasi tingkat sumber daya untuk administrasi delegasi Auto Scaling, lihat Manage Auto Scaling by using resource-level authentication.