All Products
Search
Document Center

IoT Platform:Mengelola izin menggunakan STS

Last Updated:Jul 02, 2025

Security Token Service (STS) memiliki lebih banyak persyaratan dalam pengelolaan izin dibandingkan dengan Resource Access Management (RAM). Jika Anda menggunakan STS untuk memberikan izin sementara kepada pengguna RAM pada sumber daya, Anda harus mengikuti prosedur yang lebih kompleks.

Informasi latar belakang

Pengguna RAM dan izin yang diberikan kepada mereka berlaku secara permanen. Anda hanya dapat menghapus pengguna RAM atau mencabut izin secara manual. Jika informasi pengguna RAM bocor dan Anda tidak segera mengambil tindakan, sumber daya serta informasi Alibaba Cloud Anda akan terpapar pada risiko keamanan. Oleh karena itu, kami menyarankan Anda menggunakan STS untuk mengelola izin utama atau izin yang tidak memerlukan validitas jangka panjang.

Gambar 1. Prosedur untuk Memberikan Izin Sementara kepada Pengguna RAMSTS

Langkah 1: Membuat peran RAM

Peran RAM adalah entitas virtual yang memiliki satu set izin tertentu.

Prosedur

  1. Masuk ke Konsol RAM sebagai pengguna RAM dengan hak administratif.

  2. Di panel navigasi di sebelah kiri, pilih Identities > Roles.

  3. Pada halaman Roles, klik Create Role.

    image

  4. Pada halaman Create Role, atur parameter Principal Type menjadi Cloud Account, tentukan akun Alibaba Cloud, lalu klik OK.

    image

    • Current Account: Jika Anda ingin pengguna RAM atau peran RAM dari akun Alibaba Cloud Anda mengasumsikan peran RAM, pilih Current Account.

    • Other Account: Jika Anda ingin pengguna RAM atau peran RAM dari akun Alibaba Cloud lain mengasumsikan peran RAM, pilih Other Account dan masukkan ID akun Alibaba Cloud. Opsi ini digunakan untuk memberikan izin pada sumber daya milik akun Alibaba Cloud lain. Untuk informasi lebih lanjut, lihat Gunakan Peran RAM untuk Memberikan Izin Lintas Akun Alibaba Cloud. Anda dapat melihat ID akun Alibaba Cloud Anda di halaman Pengaturan Keamanan.

  5. Opsional. Jika Anda ingin peran RAM diasumsikan hanya oleh pengguna RAM tertentu atau peran RAM dari akun Alibaba Cloud tepercaya, klik Switch to Policy Editor dan modifikasi kebijakan kepercayaan peran RAM di editor.

    Editor mendukung mode Visual Editor dan JSON. Dalam contoh berikut, hanya pengguna RAM Alice dalam akun Alibaba Cloud dengan ID 100******0719 yang dapat mengasumsikan peran RAM.

    • Visual Editor

      Tentukan pengguna RAM untuk elemen Principal.

      image

      image

    • JSON

      Tentukan pengguna RAM untuk bidang RAM dari parameter Principal.

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "RAM": "acs:ram::100******0719:user/Alice"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }

  6. Dalam kotak dialog Create Role, konfigurasikan parameter Role Name dan klik OK.

Langkah 2: Membuat kebijakan RAM

Kebijakan RAM mendefinisikan izin yang ingin Anda berikan kepada peran untuk akses sumber daya.

  1. Masuk ke Konsol RAM sebagai pengguna RAM dengan hak administratif.

  2. Di panel navigasi di sebelah kiri, pilih Permissions > Policies.

  3. Pada halaman Policies, klik Create Policy.

    image

  4. Pada halaman Create Policy, klik tab JSON.

    image

  5. Masukkan konten kebijakan.

    Untuk informasi lebih lanjut tentang sintaksis dan struktur kebijakan RAM, lihat Struktur dan Sintaksis Kebijakan.

    Berikut ini adalah kode contoh yang menunjukkan kebijakan yang mendefinisikan izin baca-saja pada sumber daya Platform IoT:

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "rds:DescribeDBInstances",
                    "rds:DescribeDatabases",
                    "rds:DescribeAccounts",
                    "rds:DescribeDBInstanceNetInfo"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":"ram:ListRoles",
                "Effect":"Allow",
                "Resource":"*"
            },
            {
                "Action":[
                    "mns:ListTopic"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":[
                    "dhs:ListProject",
                    "dhs:ListTopic",
                    "dhs:GetTopic"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":[
                    "ots:ListInstance",
                    "ots:ListTable",
                    "ots:DescribeTable"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":[
                    "log:ListShards",
                    "log:ListLogStores",
                    "log:ListProject"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Effect":"Allow",
                "Action":[
                    "iot:Query*",
                    "iot:List*",
                    "iot:Get*",
                    "iot:BatchGet*"
                ],
                "Resource":"*"
            }
        ]
    }

    Berikut ini adalah kode contoh yang menunjukkan kebijakan yang mendefinisikan izin baca-tulis pada sumber daya Platform IoT:

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "rds:DescribeDBInstances",
                    "rds:DescribeDatabases",
                    "rds:DescribeAccounts",
                    "rds:DescribeDBInstanceNetInfo"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":"ram:ListRoles",
                "Effect":"Allow",
                "Resource":"*"
            },
            {
                "Action":[
                    "mns:ListTopic"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":[
                    "dhs:ListProject",
                    "dhs:ListTopic",
                    "dhs:GetTopic"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":[
                    "ots:ListInstance",
                    "ots:ListTable",
                    "ots:DescribeTable"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Action":[
                    "log:ListShards",
                    "log:ListLogStores",
                    "log:ListProject"
                ],
                "Resource":"*",
                "Effect":"Allow"
            },
            {
                "Effect":"Allow",
                "Action":"iot:*",
                "Resource":"*"
            }
        ]
    }

Setelah kebijakan dibuat, Anda dapat melampirkannya ke peran RAM. Dengan cara ini, izin yang didefinisikan dalam kebijakan tersebut diberikan kepada peran RAM.

Langkah 3: Mengizinkan peran RAM

Hanya peran RAM yang diizinkan yang dapat mengakses sumber daya. Untuk mengizinkan satu peran RAM, Anda dapat mengklik Add Permissions di kolom Tindakan peran RAM pada halaman Roles di konsol RAM. Untuk informasi lebih lanjut, lihat Memberikan Izin kepada Peran RAM. Untuk mengizinkan beberapa peran RAM sekaligus, ikuti langkah-langkah berikut:

  1. Masuk ke Konsol RAM sebagai administrator RAM.

  2. Di panel navigasi di sebelah kiri, pilih Permissions > Grants.

  3. Pada halaman Permission, klik Grant Permission.

    image

  4. Di panel Grant Permission, berikan izin kepada peran RAM.

    1. Konfigurasikan parameter Ruang Lingkup Sumber Daya.

      • Account: Pemberian izin berlaku pada akun Alibaba Cloud saat ini.

      • Resource Group: Pemberian izin berlaku pada grup sumber daya tertentu.

        Catatan

        Jika Anda memilih Grup Sumber Daya untuk parameter Ruang Lingkup Sumber Daya, pastikan layanan cloud yang diperlukan mendukung grup sumber daya. Untuk informasi lebih lanjut, lihat Layanan yang Bekerja dengan Grup Sumber Daya.

    2. Konfigurasikan parameter Principal.

      Principal adalah peran RAM yang ingin Anda berikan izin. Anda dapat memilih beberapa peran RAM sekaligus.

    3. Konfigurasikan parameter Kebijakan.

      Kebijakan adalah satu set izin akses. Anda dapat memilih beberapa kebijakan sekaligus.

      • Kebijakan sistem: kebijakan yang dibuat oleh Alibaba Cloud. Anda dapat menggunakan tetapi tidak dapat memodifikasi kebijakan ini. Pembaruan versi kebijakan dipertahankan oleh Alibaba Cloud. Untuk informasi lebih lanjut, lihat Layanan yang Bekerja dengan RAM.

        Catatan

        Sistem secara otomatis mengidentifikasi kebijakan sistem berisiko tinggi, seperti AdministratorAccess dan AliyunRAMFullAccess. Kami menyarankan Anda untuk tidak memberikan izin yang tidak perlu dengan melampirkan kebijakan berisiko tinggi.

      • Kebijakan kustom: Anda dapat mengelola dan memperbarui kebijakan kustom berdasarkan kebutuhan bisnis Anda. Anda dapat membuat, memperbarui, dan menghapus kebijakan kustom. Untuk informasi lebih lanjut, lihat Buat Kebijakan Kustom.

    4. Klik Grant permissions.

  5. Klik Close.

Setelah Anda mengizinkan peran RAM, Anda dapat memberikan izin kepada pengguna RAM yang diperlukan untuk mengasumsikan peran RAM.

Langkah 4: Memberikan izin kepada pengguna RAM untuk mengasumsikan peran RAM

Setelah kebijakan dilampirkan ke peran RAM, peran RAM memperoleh izin yang didefinisikan dalam kebijakan. Namun, peran RAM hanyalah identitas virtual. Peran RAM dapat digunakan untuk melakukan operasi yang diizinkan hanya setelah peran tersebut diasumsikan oleh pengguna RAM. Jika semua pengguna RAM dapat mengasumsikan peran RAM, risiko keamanan mungkin ada. Untuk mencegah risiko tersebut, hanya pengguna RAM yang diizinkan yang dapat mengasumsikan peran RAM.

Untuk mengizinkan pengguna RAM mengasumsikan peran RAM, Anda dapat membuat kebijakan kustom di mana nilai parameter Sumber Daya diatur ke ID peran RAM. Kemudian, Anda dapat menggunakan kebijakan ini untuk mengizinkan pengguna RAM.

  1. Masuk ke Konsol RAM sebagai pengguna RAM dengan hak administratif.

  2. Di panel navigasi di sebelah kiri, pilih Permissions > Policies.

  3. Pada halaman Policies, klik Create Policy.

    image

  4. Pada halaman Create Policy, klik tab JSON.

    image

  5. Masukkan konten kebijakan.

    Catatan

    Dalam pernyataan kebijakan, atur nilai elemen Sumber Daya ke Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM. Untuk melihat ARN peran RAM, buka halaman Roles dan klik nama peran RAM. Anda dapat melihat ARN peran RAM di bagian Basic Information.

    Contoh:

    {
        "Version":"1",
        "Statement":[
            {
                "Effect":"Allow",
                "Action":"iot:QueryProduct",
                "Resource":"ARN dari peran RAM"
            }
        ]
    }
  6. Setelah kebijakan dibuat, kembali ke halaman utama RAM console.

    1. Di panel navigasi di sebelah kiri, pilih Identities > Users.

    2. Dalam daftar pengguna RAM, pilih pengguna RAM yang ingin Anda izinkan dan klik Add Permissions di bawah daftar pengguna RAM.

    3. Di panel Tambah Izin, pilih kebijakan yang telah dibuat dan klik OK.

Setelah pemberian izin selesai, pengguna RAM memperoleh izin untuk mengasumsikan peran RAM tertentu. Kemudian, Anda dapat menggunakan STS untuk mendapatkan kredensial identitas sementara yang diperlukan untuk mengakses sumber daya.

Langkah 5: Mendapatkan kredensial identitas sementara untuk pengguna RAM

Pengguna RAM yang diizinkan dapat memanggil operasi API STS atau menggunakan SDK STS untuk mendapatkan kredensial identitas sementara. Kredensial identitas sementara mencakup ID AccessKey, rahasia AccessKey, dan token keamanan. Untuk informasi lebih lanjut tentang API STS dan SDK STS, lihat Referensi API STS dan Referensi SDK STS.

Parameter berikut diperlukan saat Anda menggunakan API atau SDK STS untuk mendapatkan kredensial identitas sementara:

  • RoleArn: ARN dari peran RAM yang ingin diasumsikan oleh pengguna RAM.

  • RoleSessionName: nama dari kredensial identitas sementara. Ini adalah parameter kustom.

  • Kebijakan: kebijakan yang menentukan izin yang diberikan kepada pengguna RAM. Parameter ini digunakan untuk menghasilkan token dengan izin terbatas dari peran RAM. Jika Anda tidak mengatur parameter ini, token yang memiliki semua izin dari peran RAM dikembalikan.

  • DurationSeconds: periode validitas kredensial identitas sementara. Parameter ini diukur dalam detik. Nilai defaultnya adalah 3.600 dan rentang nilainya antara 900 hingga 3.600.

  • id dan secret: ID AccessKey dan rahasia AccessKey dari pengguna RAM yang ingin mengasumsikan peran RAM.

Contoh berikut menunjukkan cara mendapatkan kredensial identitas sementara.

Contoh menggunakan API: Pengguna RAM memanggil operasi AssumeRole dari STS untuk mendapatkan kredensial identitas sementara.

https://sts.aliyuncs.com?Action=AssumeRole
&RoleArn=acs:ram::1234567890123456:role/iotstsrole
&RoleSessionName=iotreadonlyrole
&DurationSeconds=3600
&Policy=<url_encoded_policy>
&<Common request parameters>

Contoh menggunakan SDK: Pengguna RAM menggunakan antarmuka baris perintah Python (CLI) untuk STS untuk mendapatkan kredensial identitas sementara.

$python ./sts.py AssumeRole RoleArn=acs:ram::1234567890123456:role/iotstsrole RoleSessionName=iotreadonlyrole Policy='{"Version":"1","Statement":[{"Effect":"Allow","Action":"iot:*","Resource":"*"}]}' DurationSeconds=3600 --id=id --secret=secret

Setelah permintaan berhasil, kredensial identitas sementara dikembalikan. Kredensial tersebut mencakup ID AccessKey, rahasia AccessKey, dan token keamanan.

Langkah 6: Mengakses sumber daya sebagai pengguna RAM

Setelah pengguna RAM memperoleh kredensial identitas sementara, pengguna RAM dapat memasukkan kredensial dalam permintaan SDK untuk mengasumsikan peran RAM tertentu.

Berikut ini adalah kode contoh yang menunjukkan bahwa pengguna RAM menggunakan SDK STS untuk Java untuk mengasumsikan peran RAM. Pengguna RAM memasukkan ID AccessKey, rahasia AccessKey, dan token keamanan dalam permintaan dan membuat objek IAcsClient.

IClientProfile  profile = DefaultProfile.getProfile("cn-hangzhou", AccessKeyId,AccessKeySecret);
RpcAcsRequest request.putQueryParameter("SecurityToken", Token);
IAcsClient client = new DefaultAcsClient(profile);
AcsResponse response = client.getAcsResponse(request);