日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置訪問域名及憑證

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

使用Java SDK發起SMQ請求,您需要配置接入點及訪問憑證。阿里云服務會通過訪問憑證驗證您的身份信息和訪問權限。您可以根據使用場景對認證和授權的要求,選擇不同類型的訪問憑證。本文介紹如何配置接入點、臨時訪問憑證、長期訪問憑證。

配置訪問域名

SMQ公網或內網接入點信息配置在aliyun-mns.properties文件中,該文件一般位于${user.home}/.aliyun-mns.properties

在Linux和macOS操作系統中,aliyun-mns.properties文件位于~/.aliyun-mns.properties

在Windows操作系統中,aliyun-mns.properties文件位于%USERPROFILE%\.aliyun-mns.properties

aliyun-mns.properties文件配置如下:

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

關于SMQ的接入點信息,您可以在控制臺的隊列詳情/主題詳情頁面的接入點區域查看。image

配置訪問憑證

您可以選擇以下類型的訪問憑證。

  • 長期訪問憑證:出于安全性考慮,不建議您使用長期訪問憑證,建議您使用臨時訪問憑證。對于需要便利性的場景,長期訪問憑證可以在較長時間內免除多次刷新的麻煩。建議每三個月更換一次長期訪問憑證,以提高賬號的安全性。當長期訪問憑證泄露或者不再使用時,應該及時刪除或者禁用相關的訪問憑證,以免造成安全風險。

  • 臨時訪問憑證:對于需要高安全性的場景,例如臨時授權應用訪問SMQ,建議使用臨時訪問憑證。臨時訪問憑證可以限制訪問的有效期,從而減少訪問憑證泄露的風險。此外,臨時訪問憑證支持權限控制,可以有效地避免權限過大的問題。

使用長期訪問憑證

當您準備在應用或服務中長期使用Java SDK訪問SMQ服務時,您可以通過以下方式配置長期訪問憑證。

配置RAM用戶的訪問密鑰:如果您需要長期訪問您的SMQ,您可以通過RAM用戶的訪問密鑰的方式訪問您的SMQ

  1. 獲取RAM用戶的訪問密鑰。

    如何獲取RAM用戶的訪問密鑰,請參見創建RAM用戶的AccessKey

    重要

    對于超過3個月的RAM用戶的訪問密鑰,建議及時輪換。對于長期不用的RAM用戶的訪問密鑰,建議及時禁用并刪除。以降低RAM用戶的訪問密鑰被泄露的風險。

  2. 配置RAM用戶的訪問密鑰。

    環境變量

    1. 配置環境變量。

      macOS

      1. 打開終端。

      2. 執行以下命令。

        nano ~/.bash_profile
      3. 在文件末尾添加RAM用戶的訪問密鑰。

        export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
        export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs**** 
      4. Ctrl+X,按Y鍵確認保存,然后按Enter鍵退出文件。

      5. 輸入以下命令以使更改生效。

        source ~/.bash_profile
      6. 執行以下命令驗證環境變量配置。

        echo $ALIBABA_CLOUD_ACCESS_KEY_ID
        echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

        成功返回示例如下:

        LTA****
        moiEs****  

      Linux

      1. 打開終端。

      2. 執行以下命令。

        sudo vim /etc/profile
      3. 在文件末尾添加RAM用戶的訪問密鑰。

        export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
        export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs**** 
      4. ESC鍵退出編輯模式,輸入:wq,然后按Enter鍵保存并退出文件。

      5. 輸入以下命令以使更改生效。

        source /etc/profile
      6. 執行以下命令驗證環境變量配置。

        echo $ALIBABA_CLOUD_ACCESS_KEY_ID
        echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

        成功返回示例如下:

        LTA****
        moiEs**** 

      Windows

      通過圖形化用戶界面GUI

      以Windows 10為例,通過圖形化用戶界面以環境變量的方式設置RAM用戶訪問密鑰的步驟如下:

      1. 在桌面右鍵單擊此電腦,選擇屬性 > 高級系統設置 > 環境變量 > 系統變量/用戶變量 > 新建

      2. 添加以下環境變量。

        變量名

        示例值

        ALIBABA_CLOUD_ACCESS_KEY_ID

        LTA****

        ALIBABA_CLOUD_ACCESS_KEY_SECRET

        moiEs****

      3. 執行以下命令驗證環境變量配置。

        echo $ALIBABA_CLOUD_ACCESS_KEY_ID
        echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

        成功返回示例如下:

        LTA****
        moiEs**** 

      通過命令行提示符CMD

      1. 打開命令行。

      2. 執行以下命令配置RAM用戶的訪問密鑰。

        set ALIBABA_CLOUD_ACCESS_KEY_ID=LTA****
        set ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****  
      3. 執行以下命令以使更改生效。

        setx ALIBABA_CLOUD_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%"
        setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "%MNS_ACCESS_KEY_SECRET%"
      4. 執行以下命令驗證環境變量配置。

        echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
        echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

        成功返回示例如下:

        LTA****
        moiEs****  

      通過Windows PowerShell

      1. 按下鍵盤上的Win + X組合鍵。

      2. 設置RAM用戶的訪問密鑰。

        僅當前會話有效
        1. 在彈出的菜單中,選擇Windows PowerShell

        2. 為當前會話添加以下環境變量。

          $env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTA****"
          $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "moiEs****"
        對所有新會話有效
        1. 在彈出的菜單中,選擇Windows PowerShell

        2. 為所有新會話添加以下環境變量。

          [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::User)
          [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::User)
        對所有用戶有效
        1. 在彈出的菜單中,選擇Windows PowerShell(管理員)

        2. 為所有用戶添加以下環境變量。

          [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. 執行以下命令驗證環境變量配置。

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

        成功返回示例如下:

        LTA****
        moiEs**** 
    2. 從環境變量中獲取RAM用戶的訪問密鑰。

      // 使用環境變量中獲取的RAM用戶的訪問密鑰配置訪問憑證。
      CloudAccount account = new CloudAccount(ServiceSettings.getMNSAccountEndpoint());

    代碼嵌入

    警告

    在代碼中嵌入訪問憑證會導致安全問題。如果訪問憑證被泄漏,攻擊者就可以使用該訪問憑證來訪問您的資源SMQ,造成損失。因此,建議您使用更安全的方式,例如從環境變量中獲取訪問憑證,來提高安全性。

    CloudAccount account = new CloudAccount(ServiceSettings.getMNSAccountEndpoint());

使用臨時訪問憑證

當您準備臨時使用Java SDK訪問SMQ服務時,您可以選擇以下方式配置臨時訪問憑證。

  • 配置STS臨時訪問憑證:如果您需要在規定時間內訪問您的SMQ,您可以通過STS服務頒發一個STS臨時訪問憑證。臨時訪問憑證無需透露您的RAM用戶訪問密鑰,使您的SMQ訪問更加安全。

  • 配置RAM角色:如果您需要授權訪問或跨賬號訪問SMQ,您可以通過RAM用戶扮演對應的RAM角色的方式授權訪問或跨賬號訪問SMQ

  • 配置ECS的RAM角色:如果你需要在阿里云的云服務器ECS中訪問您的SMQ,您可以通過ECS實例RAM角色的方式訪問SMQ。實例RAM角色允許您將一個角色關聯到云服務器實例,在實例內部基于STS臨時憑證通過指定方法訪問SMQ。STS臨時憑證由系統自動生成和更新,應用程序可以使用指定的實例元數據URL獲取臨時憑證,無需特別管理。

配置STS臨時訪問憑證

  1. 創建RAM用戶。

    具體操作,請參見創建RAM用戶

  2. 為RAM用戶授予 AliyunSTSAssumeRoleAccess權限。

    具體操作,請參見為RAM用戶授權

  3. 使用RAM用戶調用STS服務的AssumeRole接口獲取STS臨時訪問憑證。

    具體操作,請參見AssumeRole

  4. 配置STS臨時訪問憑證。

    環境變量

    1. 使用獲取的STS臨時訪問憑證配置環境變量。

      macOS

      1. 打開終端。

      2. 執行以下命令。

        nano ~/.bash_profile
      3. 在文件末尾添加從STS服務獲取的臨時訪問憑證(包括AccessKeyId、AccessKeySecret、SecurityToken)。

        export MNS_ACCESS_KEY_ID=LTA****
        export MNS_ACCESS_KEY_SECRET=moiEs****
        export MNS_SESSION_TOKEN=CAES****
      4. Ctrl+X,按Y鍵確認保存,然后按Enter鍵退出文件。

      5. 執行以下命令以使更改生效。

        source ~/.bash_profile
      6. 執行以下命令驗證環境變量配置。

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_SESSION_TOKEN

        成功返回示例如下:

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

      Linux

      1. 打開終端。

      2. 執行以下命令。

        sudo vim /etc/profile
      3. 在文件末尾添加從STS服務獲取的臨時訪問憑證(包括AccessKeyId、AccessKeySecret、SecurityToken)。

        export MNS_ACCESS_KEY_ID=LTA****
        export MNS_ACCESS_KEY_SECRET=moiEs****
        export MNS_SESSION_TOKEN=CAES****
      4. ESC鍵退出編輯模式,輸入:wq,然后按Enter鍵保存并退出文件。

      5. 執行以下命令以使更改生效。

        source /etc/profile
      6. 執行以下命令驗證環境變量配置。

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_SESSION_TOKEN

        成功返回示例如下:

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

      Windows

      通過圖形化用戶界面GUI

      以Windows 10為例,通過圖形化用戶界面以環境變量的方式設置STS臨時訪問憑證的步驟如下:

      1. 在桌面右鍵單擊此電腦,選擇屬性 > 高級系統設置 > 環境變量 > 系統變量/用戶變量 > 新建

      2. 添加以下環境變量。

        變量名

        示例值

        MNS_ACCESS_KEY_ID

        LTA****

        MNS_ACCESS_KEY_SECRET

        moiEs****

        MNS_SESSION_TOKEN

        CAES****

      3. 執行以下命令驗證環境變量配置。

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

        成功返回示例如下:

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

      通過命令行提示符CMD

      1. 打開命令行。

      2. 執行以下命令配置從STS服務獲取的臨時訪問憑證(包括AccessKeyId、AccessKeySecret、SecurityToken)。

        set MNS_ACCESS_KEY_ID=LTA****
        set MNS_ACCESS_KEY_SECRET=moiEs**** 
        set MNS_SESSION_TOKEN=CAES****
      3. 執行以下命令以使更改生效。

        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. 執行以下命令驗證環境變量配置。

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

        成功返回示例如下:

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

      通過Windows PowerShell

      1. 按下鍵盤上的Win + X組合鍵。

      2. 設置STS臨時訪問憑證。

        僅當前會話有效
        1. 在彈出的菜單中,選擇Windows PowerShell

        2. 為當前會話添加以下環境變量。

          $env:MNS_ACCESS_KEY_ID = "LTA****"
          $env:MNS_ACCESS_KEY_SECRET = "moiEs****"
          $env:MNS_SESSION_TOKEN = "CAE****"
        對所有新會話有效
        1. 在彈出的菜單中,選擇Windows PowerShell

        2. 為所有新會話添加以下環境變量。

          [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)
        對所有用戶有效
        1. 在彈出的菜單中,選擇Windows PowerShell(管理員)

        2. 為所有用戶添加以下環境變量。

          [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. 執行以下命令驗證環境變量配置。

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

        成功返回示例如下:

        LTA****
        moiEs**** 
        CAES****
    2. 從環境變量中獲取STS臨時訪問憑證。

      // 從環境變量中獲取RAM用戶的臨時訪問密鑰(AccessKey ID、AccessKey Secret和SecurityToken)。 
      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);

    代碼嵌入

    警告

    在代碼中嵌入訪問憑證會導致安全問題。如果訪問憑證被泄漏,攻擊者就可以使用該訪問憑證來訪問您的資源MNS,造成損失。因此,建議您使用更安全的方式,例如從環境變量中獲取訪問憑證,來提高安全性。

    // 從環境變量中獲取RAM用戶的臨時訪問密鑰(AccessKey ID、AccessKey Secret和SecurityToken)。
    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);
    
    String endpoint = ServiceSettings.getMNSAccountEndpoint();
    CloudAccount account = new CloudAccount(endpoint, provider);

配置RAM角色

  1. 獲取RAM用戶的訪問密鑰。

    具體操作,請參見創建RAM用戶的AccessKey

    重要

    為降低RAM用戶的訪問密鑰被泄露的風險,對于超過3個月的RAM用戶的訪問密鑰,建議及時輪換。對于長期不用的RAM用戶的訪問密鑰,建議及時禁用并刪除。

  2. 獲取目標RAM角色的RamRoleArn。

    說明

    RamRoleArn是RAM角色的ARN信息,即需要扮演的角色ID。格式為acs:ram::$accountID:role/$roleName。$accountID為阿里云賬號ID。$roleName為RAM角色名稱。

    具體操作,請參見查看RAM角色

  3. 配置RAM用戶的訪問密鑰和目標RAM角色的RAMRoleArn作為訪問憑證。

    環境變量

    1. 使用獲取的RAM用戶的訪問密鑰和目標RAM角色的RamRoleArn配置環境變量。

      macOS

      1. 打開終端。

      2. 執行以下命令。

        nano ~/.bash_profile
      3. 在文件末尾添加獲取的RAM用戶的訪問密鑰和RAM角色的RamRoleArn。

        export MNS_ACCESS_KEY_ID=LTAI****
        export MNS_ACCESS_KEY_SECRET=IrVTNZNy****  
        export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
      4. Ctrl+X,按Y鍵確認保存,然后按Enter鍵退出文件。

      5. 執行以下命令以使更改生效。

        source /etc/profile
      6. 執行以下命令驗證環境變量配置。

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_STS_ROLE_ARN

        成功返回示例如下:

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

      Linux

      1. 打開終端。

      2. 執行以下命令。

        sudo vim /etc/profile
      3. 在文件末尾添加獲取的RAM用戶的訪問密鑰和RAM角色的RamRoleArn。

        export MNS_ACCESS_KEY_ID=LTAI****
        export MNS_ACCESS_KEY_SECRET=IrVTNZNy****  
        export MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
      4. ESC鍵退出編輯模式,輸入:wq,然后按Enter鍵保存并退出文件。

      5. 執行以下命令以使更改生效。

        source /etc/profile
      6. 執行以下命令驗證環境變量配置。

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_STS_ROLE_ARN

        成功返回示例如下:

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

      Windows

      通過圖形化用戶界面GUI

      以Windows 10為例,通過圖形化用戶界面以環境變量的方式設置RAM用戶的訪問密鑰和目標RAM角色的RAMRoleArn步驟如下:

      1. 在桌面右鍵單擊此電腦,選擇屬性 > 高級系統設置 > 環境變量 > 系統變量/用戶變量 > 新建

      2. 添加以下環境變量。

        變量名

        示例值

        MNS_ACCESS_KEY_ID

        LTAI****

        MNS_ACCESS_KEY_SECRET

        IrVTNZNy****

        MNS_STS_ROLE_ARN

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

      3. 執行以下命令驗證環境變量配置。

        echo $MNS_ACCESS_KEY_ID
        echo $MNS_ACCESS_KEY_SECRET
        echo $MNS_STS_ROLE_ARN

        成功返回示例如下:

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

      通過命令行提示符CMD

      1. 打開命令行。

      2. 執行以下命令配置RAM用戶的訪問密鑰和RAM角色的RamRoleArn。

        set MNS_ACCESS_KEY_ID=LTAI****
        set MNS_ACCESS_KEY_SECRET=IrVTNZNy****  
        set MNS_STS_ROLE_ARN=acs:ram::17464958********:role/mnsststest
      3. 執行以下命令以使更改生效。

        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. 執行以下命令驗證環境變量配置。

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

        成功返回示例如下:

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

      通過Windows PowerShell

      1. 按下鍵盤上的Win + X組合鍵。

      2. 設置RAM用戶的訪問密鑰和目標RAM角色的RAMRoleArn。

        僅當前會話有效

        1. 在彈出的菜單中,選擇Windows PowerShell

        2. 為當前會話添加以下環境變量。

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

        對所有新會話有效

        1. 在彈出的菜單中,選擇Windows PowerShell

        2. 為所有新會話添加以下環境變量。

          [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)

        對所有用戶有效

        1. 在彈出的菜單中,選擇Windows PowerShell(管理員)

        2. 為所有用戶添加以下環境變量。

          [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. 執行以下命令驗證環境變量配置。

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

        成功返回示例如下:

        LTAI****
        IrVTNZNy**** 
        acs:ram::17464958********:role/mnsststest
    2. 從環境變量中獲取RAM用戶的訪問密鑰RAM角色的RamRoleArn。

      // 授權STSAssumeRole訪問的Region。以華東1(杭州)為例,其它Region請根據實際情況填寫。
      String region = "cn-hangzhou";
      // 從環境變量中獲取RAM用戶的訪問密鑰(AccessKey ID和AccessKey Secret)。
      String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID");
      String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET");
      // 從環境變量中獲取RAM角色的RamRoleArn。
      String roleArn = System.getenv("MNS_STS_ROLE_ARN");
      
      // 使用環境變量中獲取的RAM用戶的訪問密鑰和RAM角色的RamRoleArn配置訪問憑證。
      STSAssumeRoleSessionCredentialsProvider credentialsProvider = CredentialsProviderFactory
              .newSTSAssumeRoleSessionCredentialsProvider(
                      region, 
                      accessKeyId, 
                      accessKeySecret, 
                      roleArn
              );

    代碼嵌入

    警告

    在代碼中嵌入訪問憑證會導致安全問題。如果訪問憑證被泄漏,攻擊者就可以使用該訪問憑證來訪問您的資源OSS,造成損失。因此,建議您使用更安全的方式,例如從環境變量中獲取訪問憑證,來提高安全性。

    // 這個region Id和mns endpoint為一個region。
    String regionId = "cn-hangzhou";
    
    // 從環境變量中獲取RAM用戶的訪問密鑰(AccessKey ID和AccessKey Secret)。
    String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID");
    String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET");
    // 從環境變量中獲取RAM角色的RamRoleArn。
    String roleArn = System.getenv("MNS_STS_ROLE_ARN");
    
    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);

配置ECS的RAM角色

  1. 為ECS實例授予RAM角色。

    具體操作,請參見授予實例RAM角色

  2. 配置ECS的RAM角色作為訪問憑證。

    // 通過ECS RAM角色獲取訪問憑證,例如以角色名(ecs-ram-role)訪問為例。
    CredentialsProvider provider = new InstanceProfileCredentialsProvider("ecs-ram-role");