All Products
Search
Document Center

Simple Message Queue (formerly MNS):Konfigurasikan titik akhir dan kredensial akses

Last Updated:Mar 12, 2026

Untuk mengirim permintaan melalui SDK Simple Message Queue (formerly MNS) untuk Java, konfigurasikan titik akhir dan kredensial akses. Simple Message Queue mendukung pasangan AccessKey jangka panjang dan kredensial Security Token Service (STS) sementara.

Konfigurasikan titik akhir

Tetapkan titik akhir publik atau internal Simple Message Queue dalam file aliyun-mns.properties. Secara default, SDK membaca file ini dari ${user.home}/.aliyun-mns.properties.

Sistem operasiJalur file
Linux / macOS~/.aliyun-mns.properties
Windows%USERPROFILE%\.aliyun-mns.properties

Tambahkan baris berikut ke dalam file:

mns.accountendpoint=http://120228xxxxxxx.mns.cn-xxxxxx.aliyuncs.com

Untuk menemukan titik akhir Anda, buka konsol Simple Message Queue dan buka halaman Queue Details atau Topic Details. Titik akhir tercantum di bagian Endpoint.

Endpoint location in the SMQ console

Konfigurasikan kredensial akses

Simple Message Queue mendukung dua jenis kredensial:

Jenis kredensialKapan digunakanTingkat keamanan
Kredensial akses jangka panjang (pasangan AccessKey)Aplikasi yang memerlukan akses persisten ke Simple Message QueueStandar. Rotasi setiap tiga bulan.
Kredensial akses sementara (STS)Akses berdurasi singkat, otorisasi cross-account, atau beban kerja berbasis ECSTinggi. Kredensial kedaluwarsa secara otomatis.
Penting

Kredensial akses sementara lebih disarankan untuk lingkungan produksi. Kredensial tersebut kedaluwarsa setelah periode tertentu dan mendukung kontrol akses detail halus, sehingga mengurangi risiko kebocoran kredensial.

Konfigurasikan kredensial akses jangka panjang

Gunakan pasangan AccessKey dari pengguna Resource Access Management (RAM) untuk akses persisten.

Prasyarat

Buat pasangan AccessKey untuk pengguna RAM. Untuk detailnya, lihat Buat pasangan AccessKey untuk pengguna RAM.

Penting

Rotasi pasangan AccessKey yang telah digunakan lebih dari tiga bulan. Nonaktifkan dan hapus semua pasangan AccessKey yang tidak lagi digunakan.

Langkah 1: Tetapkan variabel lingkungan

Simpan pasangan AccessKey dalam variabel lingkungan, bukan menyematkan kredensial dalam kode sumber.

macOS

  1. Buka terminal dan jalankan:

       nano ~/.bash_profile
  2. Tambahkan baris berikut ke akhir file:

       export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
       export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****
  3. Tekan Ctrl+X, tekan Y untuk menyimpan, lalu tekan Enter untuk keluar.

  4. Terapkan perubahan:

       source ~/.bash_profile
  5. Verifikasi konfigurasi: Output yang diharapkan:

       echo $ALIBABA_CLOUD_ACCESS_KEY_ID
       echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
       LTA****
       moiEs****

Linux

  1. Buka terminal dan jalankan:

       sudo vim /etc/profile
  2. Tambahkan baris berikut ke akhir file:

       export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
       export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****
  3. Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan keluar.

  4. Terapkan perubahan:

       source /etc/profile
  5. Verifikasi konfigurasi: Output yang diharapkan:

       echo $ALIBABA_CLOUD_ACCESS_KEY_ID
       echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET
       LTA****
       moiEs****

Windows

GUI

Langkah-langkah berikut menggunakan Windows 10 sebagai contoh.

  1. Klik kanan This PC dan pilih Properties. Klik Advanced system settings. Di kotak dialog System Properties, klik Environment Variables pada tab Advanced. Klik New di bagian User variables or System variables.

  2. Tambahkan variabel berikut:

    VariabelContoh
    ALIBABA_CLOUD_ACCESS_KEY_IDLTA****
    ALIBABA_CLOUD_ACCESS_KEY_SECRETmoiEs****
  3. Verifikasi konfigurasi: Output yang diharapkan:

       echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
       echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
       LTA****
       moiEs****

CMD

  1. Buka command-line interface.

  2. Tetapkan variabel lingkungan:

       set ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
       set ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****
  3. Pertahankan variabel tersebut:

       setx ALIBABA_CLOUD_ACCESS_KEY_ID "%ALIBABA_CLOUD_ACCESS_KEY_ID%"
       setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "%ALIBABA_CLOUD_ACCESS_KEY_SECRET%"
  4. Verifikasi konfigurasi: Output yang diharapkan:

       echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
       echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
       LTA****
       moiEs****

PowerShell

Tekan Win+X dan pilih opsi PowerShell yang sesuai berdasarkan cakupan yang Anda butuhkan.

Hanya sesi saat ini (pilih Windows PowerShell):

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTA****"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "moiEs****"

Semua sesi baru untuk pengguna saat ini (pilih Windows PowerShell):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine)

Semua pengguna (pilih Windows PowerShell (Administrator)):

[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine)

Verifikasi konfigurasi:

Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID
Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET

Output yang diharapkan:

LTA****
moiEs****

Langkah 2: Muat kredensial dalam Java

Ambil pasangan AccessKey dari variabel lingkungan:

// Muat kredensial akses dari variabel lingkungan.
CloudAccount account = new CloudAccount(ServiceSettings.getMNSAccountEndpoint());
Peringatan

Jangan menyematkan kredensial akses langsung dalam kode sumber. Kredensial yang bocor dapat mengekspos resource Anda terhadap akses tidak sah. Gunakan variabel lingkungan sebagai gantinya.

Konfigurasikan kredensial akses sementara

Untuk akses berdurasi singkat atau sensitif keamanan, gunakan salah satu metode berikut:

MetodeKasus penggunaan
Kredensial sementara STSMemberikan akses berbatas waktu tanpa mengekspos pasangan AccessKey pengguna RAM Anda
Peran RAMMengotorisasi pengguna RAM (dari akun Alibaba Cloud yang sama atau berbeda) untuk mengasumsikan peran dengan izin tertentu
Peran RAM instans ECSMengakses SMQ dari instans Elastic Compute Service (ECS) menggunakan kredensial yang secara otomatis diperbarui

Konfigurasikan kredensial sementara STS

  1. Buat pengguna RAM. Untuk detailnya, lihat Buat pengguna RAM.

  2. Sambungkan kebijakan AliyunSTSAssumeRoleAccess ke pengguna RAM. Untuk detailnya, lihat Berikan izin kepada pengguna RAM.

  3. Panggil operasi API AssumeRole untuk mendapatkan kredensial sementara (ID AccessKey, rahasia AccessKey, dan token keamanan).

  4. Simpan kredensial sementara sebagai variabel lingkungan, lalu muat dalam kode Java Anda.

Tetapkan variabel lingkungan

macOS
  1. Buka terminal dan jalankan:

       nano ~/.bash_profile
  2. Tambahkan kredensial sementara ke akhir file:

       export MNS_ACCESS_KEY_ID=LTA****
       export MNS_ACCESS_KEY_SECRET=moiEs****
       export MNS_SESSION_TOKEN=CAES****
  3. Tekan Ctrl+X, tekan Y untuk menyimpan, lalu tekan Enter untuk keluar.

  4. Terapkan perubahan:

       source ~/.bash_profile
  5. Verifikasi konfigurasi: Output yang diharapkan:

       echo $MNS_ACCESS_KEY_ID
       echo $MNS_ACCESS_KEY_SECRET
       echo $MNS_SESSION_TOKEN
       LTA****
       moiEs****
       CAES****
Linux
  1. Buka terminal dan jalankan:

       sudo vim /etc/profile
  2. Tambahkan kredensial sementara ke akhir file:

       export MNS_ACCESS_KEY_ID=LTA****
       export MNS_ACCESS_KEY_SECRET=moiEs****
       export MNS_SESSION_TOKEN=CAES****
  3. Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan keluar.

  4. Terapkan perubahan:

       source /etc/profile
  5. Verifikasi konfigurasi: Output yang diharapkan:

       echo $MNS_ACCESS_KEY_ID
       echo $MNS_ACCESS_KEY_SECRET
       echo $MNS_SESSION_TOKEN
       LTA****
       moiEs****
       CAES****
Windows
GUI

Langkah-langkah berikut menggunakan Windows 10 sebagai contoh.

  1. Klik kanan This PC dan pilih Properties. Klik Advanced system settings. Di kotak dialog System Properties, klik Environment Variables pada tab Advanced. Klik New di bagian User variables or System variables.

  2. Tambahkan variabel berikut:

    VariabelContoh
    MNS_ACCESS_KEY_IDLTA****
    MNS_ACCESS_KEY_SECRETmoiEs****
    MNS_SESSION_TOKENCAES****
  3. Verifikasi konfigurasi: Output yang diharapkan:

       echo %MNS_ACCESS_KEY_ID%
       echo %MNS_ACCESS_KEY_SECRET%
       echo %MNS_SESSION_TOKEN%
       LTA****
       moiEs****
       CAES****
CMD
  1. Buka command-line interface.

  2. Tetapkan variabel lingkungan:

       set MNS_ACCESS_KEY_ID=LTA****
       set MNS_ACCESS_KEY_SECRET=moiEs****
       set MNS_SESSION_TOKEN=CAES****
  3. Pertahankan variabel tersebut:

       setx MNS_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%"
       setx MNS_ACCESS_KEY_SECRET "%MNS_ACCESS_KEY_SECRET%"
       setx MNS_SESSION_TOKEN "%MNS_SESSION_TOKEN%"
  4. Verifikasi konfigurasi: Output yang diharapkan:

       echo %MNS_ACCESS_KEY_ID%
       echo %MNS_ACCESS_KEY_SECRET%
       echo %MNS_SESSION_TOKEN%
       LTA****
       moiEs****
       CAES****
PowerShell

Tekan Win+X dan pilih opsi PowerShell yang sesuai berdasarkan cakupan yang Anda butuhkan.

Hanya sesi saat ini (pilih Windows PowerShell):

$env:MNS_ACCESS_KEY_ID = "LTA****"
$env:MNS_ACCESS_KEY_SECRET = "moiEs****"
$env:MNS_SESSION_TOKEN = "CAES****"

Semua sesi baru untuk pengguna saat ini (pilih Windows PowerShell):

[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_SESSION_TOKEN', 'CAES****', [System.EnvironmentVariableTarget]::Machine)

Semua pengguna (pilih Windows PowerShell (Administrator)):

[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_SESSION_TOKEN', 'CAES****', [System.EnvironmentVariableTarget]::Machine)

Verifikasi konfigurasi:

Get-ChildItem env:MNS_ACCESS_KEY_ID
Get-ChildItem env:MNS_ACCESS_KEY_SECRET
Get-ChildItem env:MNS_SESSION_TOKEN

Output yang diharapkan:

LTA****
moiEs****
CAES****

Muat kredensial dalam Java

// Muat kredensial sementara STS dari variabel lingkungan.
String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID");
String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET");
String sessionToken = System.getenv("MNS_SESSION_TOKEN");

AlibabaCloudCredentials credentials = new BasicSessionCredentials(accessKeyId, accessKeySecret, sessionToken);
AlibabaCloudCredentialsProvider provider = new StaticCredentialsProvider(credentials);
Peringatan

Jangan menyematkan kredensial akses langsung dalam kode sumber. Kredensial yang bocor dapat mengekspos resource Anda terhadap akses tidak sah. Gunakan variabel lingkungan sebagai gantinya.

Konfigurasikan peran RAM

Gunakan peran RAM untuk mengotorisasi pengguna RAM (dari akun Alibaba Cloud yang sama atau berbeda) agar dapat mengakses Simple Message Queue dengan izin tertentu.

Prasyarat

  1. Dapatkan pasangan AccessKey pengguna RAM. Untuk detailnya, lihat Buat pasangan AccessKey untuk pengguna RAM.

    Penting

    Rotasi pasangan AccessKey yang telah digunakan lebih dari tiga bulan. Nonaktifkan dan hapus semua pasangan AccessKey yang tidak lagi digunakan.

  2. Dapatkan Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM. Format ARN adalah: acs:ram::$accountID:role/$roleName. Untuk detailnya, lihat Lihat informasi tentang peran RAM.

Tetapkan variabel lingkungan

macOS
  1. Buka terminal dan jalankan:

       nano ~/.bash_profile
  2. Tambahkan pasangan AccessKey dan ARN peran ke akhir file:

       export MNS_ACCESS_KEY_ID=LTAI****
       export MNS_ACCESS_KEY_SECRET=IrVTNZNy****
       export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
  3. Tekan Ctrl+X, tekan Y untuk menyimpan, lalu tekan Enter untuk keluar.

  4. Terapkan perubahan:

       source ~/.bash_profile
  5. Verifikasi konfigurasi: Output yang diharapkan:

       echo $MNS_ACCESS_KEY_ID
       echo $MNS_ACCESS_KEY_SECRET
       echo $MNS_STS_ROLE_ARN
       LTAI****
       IrVTNZNy****
       acs:ram::17464958********:role/mnsststest
Linux
  1. Buka terminal dan jalankan:

       sudo vim /etc/profile
  2. Tambahkan pasangan AccessKey dan ARN peran ke akhir file:

       export MNS_ACCESS_KEY_ID=LTAI****
       export MNS_ACCESS_KEY_SECRET=IrVTNZNy****
       export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
  3. Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan keluar.

  4. Terapkan perubahan:

       source /etc/profile
  5. Verifikasi konfigurasi: Output yang diharapkan:

       echo $MNS_ACCESS_KEY_ID
       echo $MNS_ACCESS_KEY_SECRET
       echo $MNS_STS_ROLE_ARN
       LTAI****
       IrVTNZNy****
       acs:ram::17464958********:role/mnsststest
Windows
GUI

Langkah-langkah berikut menggunakan Windows 10 sebagai contoh.

  1. Klik kanan This PC dan pilih Properties. Klik Advanced system settings. Di kotak dialog System Properties, klik Environment Variables pada tab Advanced. Klik New di bagian User variables or System variables.

  2. Tambahkan variabel berikut:

    VariabelContoh
    MNS_ACCESS_KEY_IDLTAI****
    MNS_ACCESS_KEY_SECRETIrVTNZNy****
    MNS_STS_ROLE_ARNacs:ram::17464958********:role/mnsststest
  3. Verifikasi konfigurasi: Output yang diharapkan:

       echo %MNS_ACCESS_KEY_ID%
       echo %MNS_ACCESS_KEY_SECRET%
       echo %MNS_STS_ROLE_ARN%
       LTAI****
       IrVTNZNy****
       acs:ram::17464958********:role/mnsststest
CMD
  1. Buka command-line interface.

  2. Tetapkan variabel lingkungan:

       set MNS_ACCESS_KEY_ID=LTAI****
       set MNS_ACCESS_KEY_SECRET=IrVTNZNy****
       set MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
  3. Pertahankan variabel tersebut:

       setx MNS_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%"
       setx MNS_ACCESS_KEY_SECRET "%MNS_ACCESS_KEY_SECRET%"
       setx MNS_STS_ROLE_ARN "%MNS_STS_ROLE_ARN%"
  4. Verifikasi konfigurasi: Output yang diharapkan:

       echo %MNS_ACCESS_KEY_ID%
       echo %MNS_ACCESS_KEY_SECRET%
       echo %MNS_STS_ROLE_ARN%
       LTAI****
       IrVTNZNy****
       acs:ram::17464958********:role/mnsststest
PowerShell

Tekan Win+X dan pilih opsi PowerShell yang sesuai berdasarkan cakupan yang Anda butuhkan.

Hanya sesi saat ini (pilih Windows PowerShell):

$env:MNS_ACCESS_KEY_ID = "LTAI****"
$env:MNS_ACCESS_KEY_SECRET = "IrVTNZNy****"
$env:MNS_STS_ROLE_ARN = "acs:ram::17464958********:role/mnsststest"

Semua sesi baru untuk pengguna saat ini (pilih Windows PowerShell):

[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_STS_ROLE_ARN', 'acs:ram::17464958********:role/mnsststest', [System.EnvironmentVariableTarget]::Machine)

Semua pengguna (pilih Windows PowerShell (Administrator)):

[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTAI****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'IrVTNZNy****', [System.EnvironmentVariableTarget]::Machine)
[System.Environment]::SetEnvironmentVariable('MNS_STS_ROLE_ARN', 'acs:ram::17464958********:role/mnsststest', [System.EnvironmentVariableTarget]::Machine)

Verifikasi konfigurasi:

Get-ChildItem env:MNS_ACCESS_KEY_ID
Get-ChildItem env:MNS_ACCESS_KEY_SECRET
Get-ChildItem env:MNS_STS_ROLE_ARN

Output yang diharapkan:

LTAI****
IrVTNZNy****
acs:ram::17464958********:role/mnsststest

Muat kredensial dalam Java

// Tentukan wilayah untuk asumsi peran STS (contoh: China (Hangzhou)).
String region = "cn-hangzhou";

// Muat pasangan AccessKey pengguna RAM dari variabel lingkungan.
String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID");
String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET");

// Muat ARN peran RAM dari variabel lingkungan.
String roleArn = System.getenv("MNS_STS_ROLE_ARN");

// Buat penyedia kredensial menggunakan pasangan AccessKey dan ARN peran.
STSAssumeRoleSessionCredentialsProvider credentialsProvider = CredentialsProviderFactory
        .newSTSAssumeRoleSessionCredentialsProvider(
                region,
                accessKeyId,
                accessKeySecret,
                roleArn
        );
Peringatan

Jangan menyematkan kredensial akses langsung dalam kode sumber. Kredensial yang bocor dapat mengekspos resource Anda terhadap akses tidak sah. Gunakan variabel lingkungan sebagai gantinya.

Konfigurasikan peran RAM instans ECS

Untuk mengakses Simple Message Queue dari instans ECS, tetapkan peran RAM ke instans tersebut dan biarkan SDK mengambil kredensial sementara yang secara otomatis diperbarui melalui URL metadata instans.

  1. Tetapkan peran RAM ke instans ECS. Untuk detailnya, lihat Berikan akses ECS ke layanan Alibaba Cloud lainnya dengan menggunakan peran RAM instans.

  2. Buat penyedia kredensial menggunakan nama peran RAM:

       // Muat kredensial melalui peran RAM yang dilampirkan ke instans ECS.
       // Ganti "ecs-ram-role" dengan nama peran aktual Anda.
       CredentialsProvider provider = new InstanceProfileCredentialsProvider("ecs-ram-role");

Tidak diperlukan konfigurasi variabel lingkungan. SDK secara otomatis mengambil dan memperbarui kredensial sementara dari layanan metadata instans ECS.