すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RabbitMQ:CreateAccount

最終更新日:Apr 24, 2026

オープンソースのクライアントが ApsaraMQ for RabbitMQ サーバーにアクセスする場合、認証のためにユーザー名とパスワードを提供する必要があります。ApsaraMQ for RabbitMQ では、Resource Access Management (RAM) によって提供される AccessKey ID と AccessKey Secret からユーザー名とパスワードを生成できます。

操作説明

背景情報

オープンソースのクライアントが ApsaraMQ for RabbitMQ サーバーにアクセスする場合、認証のためにユーザー名とパスワードを提供する必要があります。認証が成功すると、クライアントはサーバーにアクセスできます。ApsaraMQ for RabbitMQ では、RAM によって提供される AccessKey ID と AccessKey Secret からユーザー名とパスワードを生成できます。

注意事項

  • 静的ユーザー名とパスワードを作成するインスタンスは、サービス中の状態である必要があります。

  • 1 つのインスタンス内では、AccessKey と静的ユーザー名・パスワードは 1 対 1 でマッピングされます。つまり、1 つのインスタンス内で各 AccessKey に対して作成できる静的ユーザー名とパスワードは 1 つだけです。

  • 静的ユーザー名とパスワードを更新するには、既存のものを削除して新しいものを作成する必要があります。

ユーザー名計算のサンプルコード

`userName` リクエストパラメーターの値は、Base64 でエンコードされた文字列です。この文字列は、インスタンス ID と AccessKey ID から構成されます。以下のサンプルコードは、その値の計算方法を示しています。

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64Utils {
    public static final Charset UTF8 = StandardCharsets.UTF_8;

    /**
     * Decode a Base64 string
     *
     * @param str
     * @return
     */
    public static String decode(String str) {
        return new String(Base64.getDecoder().decode(str.getBytes(UTF8)), UTF8);
    }

    public static String encode(String bytes) {
        return new String(Base64.getEncoder().encode(bytes.getBytes(UTF8)), UTF8);
    }

    public static void main(String[] args) {
        // インスタンス ID と、インスタンスの購入に使用したアカウントの AccessKey ID から文字列を構成します。
        String str = "2:${instanceId}:${ak}";

        // API 呼び出し用の userName を生成します。
        String userName = encode(str);
        System.out.println("userName=" + userName);

        String decodeStr = decode(userName);
        System.out.println("originStr=" + decodeStr);
    }
}

署名アルゴリズムのサンプルコード

`signature` および `secretSign` リクエストパラメーターの値は、暗号化アルゴリズムを使用して計算されます。このアルゴリズムでは、静的ユーザー名の作成タイムスタンプと AccessKey Secret が使用されます。以下のサンプルコードは、このアルゴリズムを示しています。

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public class SignatureUtils {

    public static String hamcsha1(byte[] data, byte[] key) throws NoSuchAlgorithmException, InvalidKeyException {
        SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA1");
        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(signingKey);
        return byte2hex(mac.doFinal(data));
    }

    public static String byte2hex(byte[] b) {
        StringBuilder hs = new StringBuilder();
        String stmp;
        for (int n = 0; b != null && n < b.length; n++) {
            stmp = Integer.toHexString(b[n] & 0XFF);
            if (stmp.length() == 1) {
                hs.append('0');
            }
            hs.append(stmp);
        }
        return hs.toString().toUpperCase();
    }

    public static void main(String[] args) throws InvalidKeyException, NoSuchAlgorithmException {
        // createTimestamp は API の createTimestamp パラメーターです。
        String createTimestamp = String.valueOf(System.currentTimeMillis());
        System.out.println("timestamp:" + createTimestamp);

        // ご利用のアカウントの AccessKey Secret。
        String sk = "${sk}";

        // API 呼び出し用の SecretSign を生成します。
        String SecretSign = hamcsha1(sk.getBytes(), createTimestamp.getBytes());
        System.out.println("SecretSign:" + SecretSign);

        // API 呼び出し用の signature を生成します。
        String signature = hamcsha1(createTimestamp.getBytes(), sk.getBytes());
        System.out.println("signature:" + signature);
    }
}

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

RAM 認証

この操作の認証情報はありません。問題が発生した場合は、アカウントマネージャーにご連絡ください。

リクエストパラメーター

パラメーター

必須 / 任意

説明

instanceId

string

必須

ApsaraMQ for RabbitMQ インスタンスの ID。静的ユーザー名とパスワードを作成するインスタンスを指定します。

amqp-cn-*********

accountAccessKey

string

必須

ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID。AccessKey ID の取得方法の詳細については、「AccessKey の作成」をご参照ください。

説明

RAM ユーザーの AccessKey を使用して、ApsaraMQ for RabbitMQ へのアクセスやメッセージの送受信を行うための静的ユーザー名とパスワードを作成する場合、その RAM ユーザーに必要な権限が付与されていることを確認してください。詳細については、「RAM アクセスポリシー」をご参照ください。

yourAccessKeyID

userName

string

必須

作成する静的ユーザー名。

このパラメーターの値は、インスタンス ID と AccessKey ID から構成される Base64 でエンコードされた文字列です。値の計算方法の詳細については、このトピックの「ユーザー名計算のサンプルコード」セクションをご参照ください。

Mjo****************

signature

string

必須

署名。システムは、署名、AccessKey Secret の署名、およびユーザー名に基づいて静的パスワードを計算します。

署名は、指定されたユーザー名の作成タイムスタンプと AccessKey ID に対して HmacSHA1 アルゴリズムを使用して計算されます。署名の計算方法の詳細については、このトピックの「署名アルゴリズムのサンプルコード」セクションをご参照ください。

22c2d7d1769cb53c5a6d9213248e2de524******

createTimestamp

integer

必須

ユーザー名とパスワードが作成された日時を示すタイムスタンプ。単位:ミリ秒。

説明

このタイムスタンプは静的パスワードの計算に使用されます。この値はカスタマイズ可能です。これは、ユーザー名とパスワードが作成されたときにシステムが生成するタイムスタンプではありません。

1671175303522

secretSign

string

必須

AccessKey Secret の署名。システムは、署名、AccessKey Secret の署名、およびユーザー名に基づいて静的パスワードを計算します。

AccessKey Secret の署名は、指定されたユーザー名の作成タイムスタンプと AccessKey ID に対して HmacSHA1 アルゴリズムを使用して計算されます。署名の計算方法の詳細については、このトピックの「署名アルゴリズムのサンプルコード」セクションをご参照ください。

4c1a6367ce4c4255e9617326f9133ac635******

Remark

string

任意

静的ユーザーに関する備考。

*** environment

レスポンスフィールド

フィールド

説明

object

返された結果。

RequestId

string

リクエスト ID。

FEBA5E0C-50D0-4FA6-A794-4901E5465***

Code

integer

リターンコード。値が 200 の場合は、リクエストが成功したことを示します。

200

Message

string

返されたメッセージ。

operation success

Success

boolean

リクエストが成功したかどうかを示します。

true

Data

object

返されたデータ。

AccessKey

string

ユーザー名とパスワードの作成に使用された AccessKey ID。

LTAI****************

Password

string

作成された静的パスワード。

OUYwQzM2QjZBRkUxNDRFM***************MzZCNzdDQzoxNjcxNDMwMzkyODI1

CreateTimeStamp

integer

ユーザー名とパスワードが作成されたタイムスタンプ。単位:ミリ秒。

1671175303522

InstanceId

string

ApsaraMQ for RabbitMQ インスタンスの ID。

amqp-cn-*********

MasterUId

integer

AccessKey を所有する Alibaba Cloud アカウントまたは RAM ユーザーの ID。この AccessKey は、静的ユーザー名とパスワードの作成に使用されます。

1565***********01

UserName

string

作成された静的ユーザー名。

MjphbXFwLWNuLXVxbTJ6cjc2djAwMzpMVEFJNX*******ZNMWVSWnRFSjZ2Zm8=

Remark

string

備考。

***环境

成功レスポンス

JSONJSON

{
  "RequestId": "FEBA5E0C-50D0-4FA6-A794-4901E5465***",
  "Code": 200,
  "Message": "operation success",
  "Success": true,
  "Data": {
    "AccessKey": "LTAI****************",
    "Password": "OUYwQzM2QjZBRkUxNDRFM***************MzZCNzdDQzoxNjcxNDMwMzkyODI1",
    "CreateTimeStamp": 1671175303522,
    "InstanceId": "amqp-cn-*********",
    "MasterUId": 0,
    "UserName": "MjphbXFwLWNuLXVxbTJ6cjc2djAwMzpMVEFJNX*******ZNMWVSWnRFSjZ2Zm8=",
    "Remark": "***环境"
  }
}

エラーコード

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。