Todos os produtos
Search
Central de documentação

Simple Message Queue (formerly MNS):Endpoints e credenciais de acesso

Última atualização: Aug 27, 2026

Para enviar requisições do Simple Message Queue (SMQ) com o SDK para Java, é necessário configurar endpoints e credenciais de acesso. Os services da Alibaba Cloud utilizam essas credenciais para verificar sua identidade e permissões de acesso. Você pode escolher diferentes tipos de credenciais conforme os requisitos de autenticação e autorização do seu caso de uso. Este tópico descreve como configurar endpoints, credenciais de acesso temporárias e credenciais de acesso de longo prazo.

Configurar endpoints

Configure o endpoint público ou interno do ApsaraMQ no arquivo aliyun-mns.properties. Geralmente, esse arquivo está localizado em ${user.home}/.aliyun-mns.properties.

No Linux e macOS, o arquivo aliyun-mns.properties encontra-se em ~/.aliyun-mns.properties.

No Windows, o arquivo aliyun-mns.properties encontra-se em %USERPROFILE%\.aliyun-mns.properties.

Configure o arquivo aliyun-mns.properties da seguinte forma:

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

O endpoint do ApsaraMQ está disponível na seção Endpoint da página Queue Details ou Topic Details no console.

Credenciais de acesso

Os seguintes tipos de credenciais de acesso estão disponíveis:

  • Credenciais de acesso de longo prazo: Para maior segurança, prefira credenciais temporárias. As credenciais de longo prazo oferecem conveniência por não exigirem renovação frequente, mas recomenda-se rotacioná-las a cada três meses para proteger a conta. Caso suspeite de comprometimento ou deixe de utilizar uma credencial de longo prazo, exclua-a ou desative-a imediatamente para evitar riscos de segurança.

  • Credenciais de acesso temporárias: Indicadas para cenários que exigem alta segurança, como autorizar temporariamente uma aplicação a acessar o SMQ. Essas credenciais possuem validade limitada, o que reduz o risco de comprometimento. Além disso, permitem controle de acesso refinado, evitando os riscos associados a permissões excessivas.

Credenciais de acesso de longo prazo

Ao preparar sua aplicação ou service para usar o SDK para Java com acesso de longo prazo ao ApsaraMQ, configure uma credencial de acesso de longo prazo utilizando um dos métodos abaixo.

Configurar o par de AccessKey de um usuário RAM: Se você precisa de acesso de longo prazo ao SMQ, utilize um par de AccessKey de um usuário RAM para acessar seu SMQ.

  1. Obtenha um par de AccessKey de um usuário RAM.

    Para obter instruções sobre como conseguir um par de AccessKey de um usuário RAM, consulte Create an AccessKey pair for a RAM user.

    Importante

    Como prática recomendada de segurança, rotacione seu par de AccessKey se ele estiver em uso há mais de três meses. Caso um par de AccessKey fique sem uso por um longo período, desative-o ou exclua-o para reduzir o risco de vazamentos.

  2. Configure o par de AccessKey do usuário RAM.

    Variáveis de ambiente

    1. Defina as variáveis de ambiente.

      macOS

      1. Abra o terminal.

      2. Execute o comando a seguir:

        nano ~/.bash_profile
      3. Adicione as linhas abaixo ao final do arquivo:

        export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
        export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs**** 
      4. Pressione Ctrl+X, pressione Y para confirmar e, em seguida, pressione Enter para salvar e sair.

      5. Execute o comando a seguir para aplicar as alterações:

        source ~/.bash_profile
      6. Verifique a configuração executando os comandos abaixo:

        echo $ALIBABA_CLOUD_ACCESS_KEY_ID
        echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

        A saída a seguir indica que a configuração foi bem-sucedida:

        LTA****
        moiEs****  

      Linux

      1. Abra o terminal.

      2. Execute o comando a seguir:

        sudo vim /etc/profile
      3. Adicione as linhas abaixo ao final do arquivo:

        export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
        export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs**** 
      4. Pressione Esc para sair do modo de edição, insira :wq e pressione Enter para salvar e sair.

      5. Execute o comando a seguir para aplicar as alterações:

        source /etc/profile
      6. Verifique a configuração executando os comandos abaixo:

        echo $ALIBABA_CLOUD_ACCESS_KEY_ID
        echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

        A saída a seguir indica que a configuração foi bem-sucedida:

        LTA****
        moiEs**** 

      Windows

      GUI

      Os passos a seguir mostram como definir o par de AccessKey como variáveis de ambiente usando a GUI no Windows 10.

      1. Na área de trabalho, clique com o botão direito em This PC e selecione Properties. Acesse Advanced system settings > Environment Variables. Na seção System variables ou User variables, clique em New.

      2. Adicione as variáveis de ambiente a seguir.

        Parâmetro

        Valor

        ALIBABA_CLOUD_ACCESS_KEY_ID

        LTA****

        ALIBABA_CLOUD_ACCESS_KEY_SECRET

        moiEs****

      3. Para verificar a configuração, abra uma nova janela do Prompt de Comando e execute os comandos abaixo:

        echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
        echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

        A saída a seguir indica que a configuração foi bem-sucedida:

        LTA****
        moiEs**** 

      Command Prompt (CMD)

      1. Abra o Prompt de Comando.

      2. Execute os comandos a seguir para configurar o par de AccessKey do usuário RAM.

        set ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
        set ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****  
      3. Para tornar essas variáveis persistentes entre sessões, execute os comandos abaixo:

        setx ALIBABA_CLOUD_ACCESS_KEY_ID "%ALIBABA_CLOUD_ACCESS_KEY_ID%"
        setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "%ALIBABA_CLOUD_ACCESS_KEY_SECRET%"
      4. Verifique se as variáveis de ambiente foram configuradas executando os comandos a seguir.

        echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
        echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

        A saída a seguir indica que a configuração foi bem-sucedida:

        LTA****
        moiEs****  

      Windows PowerShell

      1. Pressione Win+X.

      2. Escolha um dos métodos a seguir para definir o par de AccessKey:

        Sessão atual

        1. No menu exibido, selecione Windows PowerShell.

        2. Adicione as variáveis de ambiente a seguir para a sessão atual.

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

        Novas sessões

        1. No menu exibido, selecione Windows PowerShell.

        2. Adicione as variáveis de ambiente a seguir para todas as novas sessões.

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

        Todos os usuários

        1. No menu exibido, selecione Windows PowerShell (Administrator).

        2. Adicione as variáveis de ambiente a seguir para todos os usuários.

          [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine)
          [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine)
      3. Para verificar a configuração, execute os comandos a seguir em uma nova janela do PowerShell:

        echo $env:ALIBABA_CLOUD_ACCESS_KEY_ID
        echo $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET

        A saída a seguir indica que a configuração foi bem-sucedida:

        LTA****
        moiEs**** 
    2. Sua aplicação poderá então obter o par de AccessKey das variáveis de ambiente. O código Java a seguir mostra um exemplo de criação de cliente que usa essas variáveis implicitamente:

      // The SDK client implicitly uses environment variables for authentication
      // when no explicit credentials are provided.
      CloudAccount account = new CloudAccount(ServiceSettings.getMNSAccountEndpoint());

    Incorporar no código

    Aviso

    Incorporar credenciais de acesso no código representa um risco de segurança. Se suas credenciais vazarem, invasores poderão usá-las para acessar seus resources do SMQ. Para maior segurança, recomendamos usar um método mais seguro, como obter credenciais de acesso a partir de variáveis de ambiente.

    CloudAccount account = new CloudAccount("LTA****", "moiEs****", ServiceSettings.getMNSAccountEndpoint());

Credenciais de acesso temporárias

Para usar o SDK para Java e acessar temporariamente o ApsaraMQ for Kafka, utilize um dos métodos a seguir para configurar credenciais de acesso temporárias:

  • Configurar credenciais de acesso temporárias STS: Para acessar o SMQ por tempo limitado, use o STS para emitir uma credencial de acesso temporária. Essa credencial permite acesso seguro ao SMQ sem expor o par de AccessKey do seu usuário RAM.

  • Configurar uma função RAM: Para conceder acesso ao SMQ dentro da sua conta ou entre contas, utilize uma função RAM. Um usuário RAM pode então assumir essa função para acessar o SMQ.

  • Configurar uma função RAM para uma instância ECS: Se você precisar acessar seu SMQ a partir de uma instância ECS da Alibaba Cloud, utilize uma função RAM de instância ECS para acessar o SMQ. Uma função RAM de instância permite associar uma função a uma instância ECS e acessar o SMQ de dentro da instância usando credenciais temporárias STS. O sistema gera e atualiza automaticamente as credenciais temporárias STS, e sua aplicação pode usar uma URL de metadados de instância específica para obter as credenciais temporárias sem necessidade de gerenciamento manual.

Credenciais de acesso temporárias STS

  1. Crie um usuário RAM.

    Para mais informações, consulte Create a RAM user.

  2. Anexe a política AliyunSTSAssumeRoleAccess ao usuário RAM.

    Para mais informações, consulte Manage RAM user permissions.

  3. Use o usuário RAM para chamar a operação AssumeRole do STS e obter credenciais de acesso temporárias STS.

    Para mais informações, consulte AssumeRole.

  4. Configure as credenciais de acesso temporárias STS.

    Variáveis de ambiente

    1. Defina as variáveis de ambiente usando as credenciais de acesso temporárias STS obtidas.

      macOS

      1. Abra o terminal.

      2. Execute o comando a seguir:

        nano ~/.bash_profile
      3. Adicione as credenciais de acesso temporárias (AccessKey ID, AccessKey Secret e token de segurança) ao final do arquivo.

        export MNS_ACCESS_KEY_ID=LTA****
        export MNS_ACCESS_KEY_SECRET=moiEs****
        export MNS_SESSION_TOKEN=CAES****
      4. Pressione Ctrl+X, pressione Y para salvar as alterações e, em seguida, pressione Enter para sair.

      5. Execute o comando a seguir para aplicar as alterações:

        source ~/.bash_profile
      6. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_SESSION_TOKEN

        Veja a seguir um exemplo de saída:

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

      Linux

      1. Abra o terminal.

      2. Execute o comando a seguir:

        sudo vim /etc/profile
      3. Adicione as credenciais de acesso temporárias (AccessKey ID, AccessKey Secret e token de segurança) ao final do arquivo.

        export MNS_ACCESS_KEY_ID=LTA****
        export MNS_ACCESS_KEY_SECRET=moiEs****
        export MNS_SESSION_TOKEN=CAES****
      4. Pressione ESC para sair do modo de edição, insira :wq e pressione Enter para salvar e sair do arquivo.

      5. Execute o comando a seguir para aplicar as alterações:

        source /etc/profile
      6. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_SESSION_TOKEN

        Veja a seguir um exemplo de saída:

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

      Windows

      GUI

      Esta seção mostra como definir credenciais de acesso temporárias STS como variáveis de ambiente usando a GUI no Windows 10.

      1. Na área de trabalho, clique com o botão direito em This PC e selecione Properties > Advanced system settings > Environment Variables. Na seção User variables ou System variables, clique em New.

      2. Adicione as variáveis de ambiente a seguir:

        Parâmetro

        Valor

        MNS_ACCESS_KEY_ID

        LTA****

        MNS_ACCESS_KEY_SECRET

        moiEs****

        MNS_SESSION_TOKEN

        CAES****

      3. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo %MNS_ACCESS_KEY_ID%
        echo %MNS_ACCESS_KEY_SECRET%
        echo %MNS_SESSION_TOKEN%

        Veja a seguir um exemplo de saída:

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

      Command Prompt

      1. Abra o Prompt de Comando.

      2. Execute os comandos a seguir para definir as credenciais de acesso temporárias (AccessKey ID, AccessKey Secret e token de segurança).

        set MNS_ACCESS_KEY_ID=LTA****
        set MNS_ACCESS_KEY_SECRET=moiEs**** 
        set MNS_SESSION_TOKEN=CAES****
      3. Execute os comandos a seguir para aplicar as alterações:

        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. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo %MNS_ACCESS_KEY_ID%
        echo %MNS_ACCESS_KEY_SECRET%
        echo %MNS_SESSION_TOKEN%

        Veja a seguir um exemplo de saída:

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

      Windows PowerShell

      1. Pressione Win + X.

      2. Defina as credenciais de acesso temporárias STS.

        Sessão atual

        1. No menu exibido, selecione Windows PowerShell.

        2. Defina as variáveis de ambiente a seguir para a sessão atual:

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

        Novas sessões

        1. No menu exibido, selecione Windows PowerShell.

        2. Defina as variáveis de ambiente a seguir para todas as novas sessões:

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

        Todos os usuários

        1. No menu exibido, selecione Windows PowerShell (Administrator).

        2. Defina as variáveis de ambiente a seguir para todos os usuários:

          [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)
      3. Verifique as variáveis de ambiente executando os comandos abaixo:

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

        Veja a seguir um exemplo de saída:

        LTA****
        moiEs**** 
        CAES****
    2. Obtenha as credenciais de acesso temporárias STS das variáveis de ambiente.

      // Obtain the STS temporary access credentials from environment variables. 
      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);

    Incorporar no código

    Aviso

    Incorporar credenciais de acesso no código representa um risco de segurança. Se vazarem, essas credenciais podem ser usadas por invasores para acessar seus resources do MNS. Para maior segurança, recomendamos usar um método mais seguro, como obter credenciais de acesso a partir de variáveis de ambiente.

    // WARNING: Hardcoding credentials is a security risk.
    String accessKeyId = "LTAI************"; // Replace with your AccessKey ID.
    String accessKeySecret = "K_VTN*******************"; // Replace with your AccessKey Secret.
    String sessionToken = "CAES********************"; // Replace with your security token.
    AlibabaCloudCredentials credentials = new BasicSessionCredentials(accessKeyId,accessKeySecret,sessionToken);
    AlibabaCloudCredentialsProvider provider = new StaticCredentialsProvider(credentials);
    String endpoint = ServiceSettings.getMNSAccountEndpoint();
    CloudAccount account = new CloudAccount(endpoint, provider);

Função RAM

  1. Obtenha o par de AccessKey do usuário RAM.

    Para mais informações, consulte Create an AccessKey pair for a RAM user.

    Importante

    Para reduzir o risco de vazamento de um par de AccessKey, recomendamos rotacionar o par de AccessKey se ele estiver em uso há mais de três meses. Caso um par de AccessKey não seja mais necessário, desative-o e exclua-o prontamente.

  2. Obtenha o ARN da Função RAM da função RAM de destino.

    Nota

    Um ARN de Função RAM é o Alibaba Cloud Resource Name (ARN) de uma função RAM, que identifica a função a ser assumida. Ele segue o formato: acs:ram::$accountID:role/$roleName, onde $accountID é o ID da sua conta Alibaba Cloud e $roleName é o nome da função RAM.

    Para mais informações, consulte View a RAM role.

  3. Configure o par de AccessKey do usuário RAM e o ARN da Função RAM de destino como credenciais de acesso.

    Variáveis de ambiente

    1. Defina variáveis de ambiente usando o par de AccessKey do usuário RAM e o ARN da Função RAM de destino.

      macOS

      1. Abra o terminal.

      2. Execute o comando a seguir:

        nano ~/.bash_profile
      3. Adicione o par de AccessKey do usuário RAM e o ARN da Função RAM ao final do arquivo.

        export MNS_ACCESS_KEY_ID=LTAI****
        export MNS_ACCESS_KEY_SECRET=IrVTNZNy****  
        export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
      4. Pressione Ctrl+X, pressione Y para salvar as alterações e, em seguida, pressione Enter para sair.

      5. Execute o comando a seguir para aplicar as alterações:

        source ~/.bash_profile
      6. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_STS_ROLE_ARN

        Veja a seguir um exemplo de saída:

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

      Linux

      1. Abra o terminal.

      2. Execute o comando a seguir:

        sudo vim /etc/profile
      3. Adicione o par de AccessKey do usuário RAM e o ARN da Função RAM ao final do arquivo.

        export MNS_ACCESS_KEY_ID=LTAI****
        export MNS_ACCESS_KEY_SECRET=IrVTNZNy****  
        export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
      4. Pressione ESC para sair do modo de edição, insira :wq e pressione Enter para salvar e sair do arquivo.

      5. Execute o comando a seguir para aplicar as alterações:

        source /etc/profile
      6. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_STS_ROLE_ARN

        Veja a seguir um exemplo de saída:

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

      Windows

      GUI

      Esta seção mostra como usar a GUI no Windows 10 para definir variáveis de ambiente para o par de AccessKey do usuário RAM e o ARN da Função RAM de destino.

      1. Na área de trabalho, clique com o botão direito em This PC e selecione Properties > Advanced system settings > Environment Variables. Na seção User variables ou System variables, clique em New.

      2. Adicione as variáveis de ambiente a seguir:

        Parâmetro

        Valor

        MNS_ACCESS_KEY_ID

        LTAI****

        MNS_ACCESS_KEY_SECRET

        IrVTNZNy****

        MNS_STS_ROLE_ARN

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

      3. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo %MNS_ACCESS_KEY_ID%
        echo %MNS_ACCESS_KEY_SECRET%
        echo %MNS_STS_ROLE_ARN%

        Veja a seguir um exemplo de saída:

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

      Command Prompt

      1. Abra o Prompt de Comando.

      2. Execute os comandos a seguir para definir o par de AccessKey do usuário RAM e o ARN da Função RAM:

        set MNS_ACCESS_KEY_ID=LTAI****
        set MNS_ACCESS_KEY_SECRET=IrVTNZNy****  
        set MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
      3. Execute os comandos a seguir para aplicar as alterações:

        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. Verifique as variáveis de ambiente executando os comandos abaixo:

        echo %MNS_ACCESS_KEY_ID%
        echo %MNS_ACCESS_KEY_SECRET%
        echo %MNS_STS_ROLE_ARN%

        Veja a seguir um exemplo de saída:

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

      Windows PowerShell

      1. Pressione Win + X.

      2. Defina o par de AccessKey do usuário RAM e o ARN da Função RAM de destino.

        Sessão atual

        1. No menu exibido, selecione Windows PowerShell.

        2. Defina as variáveis de ambiente a seguir para a sessão atual:

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

        Novas sessões

        1. No menu exibido, selecione Windows PowerShell.

        2. Defina as variáveis de ambiente a seguir para todas as novas sessões:

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

        Todos os usuários

        1. No menu exibido, selecione Windows PowerShell (Administrator).

        2. Defina as variáveis de ambiente a seguir para todos os usuários:

          [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)
      3. Verifique as variáveis de ambiente executando os comandos abaixo:

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

        Veja a seguir um exemplo de saída:

        LTAI****
        IrVTNZNy**** 
        acs:ram::17464958********:role/mnsststest
    2. Obtenha o par de AccessKey do usuário RAM e o ARN da Função RAM das variáveis de ambiente.

      // The region where STSAssumeRole is authorized. This example uses China (Hangzhou).
      String region = "cn-hangzhou";
      // Obtain the AccessKey pair (AccessKey ID and AccessKey Secret) of the RAM user from the environment variables.
      String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID");
      String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET");
      // Obtain the RAM Role ARN from the environment variable.
      String roleArn = System.getenv("MNS_STS_ROLE_ARN");
      // Configure the access credentials by using the AccessKey pair of the RAM user and the RAM Role ARN obtained from the environment variables.
      STSAssumeRoleSessionCredentialsProvider credentialsProvider = CredentialsProviderFactory
              .newSTSAssumeRoleSessionCredentialsProvider(
                      region, 
                      accessKeyId, 
                      accessKeySecret, 
                      roleArn
              );

    Incorporar no código

    Aviso

    Incorporar credenciais de acesso no código representa um risco de segurança. Se vazarem, essas credenciais podem ser usadas por invasores para acessar seus resources do MNS. Para maior segurança, recomendamos usar um método mais seguro, como obter credenciais de acesso a partir de variáveis de ambiente.

    // WARNING: Hardcoding credentials is a security risk.
    // The region ID must match the MNS endpoint.
    String regionId = "cn-hangzhou";
    // Replace the following with your RAM user's AccessKey pair and the target RAM Role ARN.
    String accessKeyId = "LTAI************"; // The AccessKey ID of the RAM user.
    String accessKeySecret = "K_VTN*******************"; // The AccessKey Secret of the RAM user.
    String roleArn = "acs:ram::17464958********:role/mnsststest"; // The ARN of the RAM role to assume.
    DefaultProfile profile = DefaultProfile.getProfile(regionId);
    AlibabaCloudCredentialsProvider provider = new STSAssumeRoleSessionCredentialsProvider(
        new BasicCredentials(accessKeyId, accessKeySecret),
        roleArn,
        profile
    );
    String endpoint = ServiceSettings.getMNSAccountEndpoint();
    CloudAccount account = new CloudAccount(endpoint, provider);

Função RAM de ECS

  1. Atribua uma função RAM a uma instância ECS.

    Para mais informações, consulte Attach an instance RAM role.

  2. Configure a função RAM da instância ECS como credencial de acesso.

    // Obtain access credentials from the 'ecs-ram-role' ECS instance RAM role.
    CredentialsProvider provider = new InstanceProfileCredentialsProvider("ecs-ram-role");