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

Simple Message Queue (formerly MNS):エンドポイントとアクセス資格情報を構成する

最終更新日:Jan 13, 2025

Java 用 Simple Message Queue(旧称 MNS) SDK を使用してリクエストを開始するには、エンドポイントとアクセス資格情報を構成する必要があります。Alibaba Cloud サービスは、アクセス資格情報を使用して、ID 情報とアクセス許可を確認します。さまざまなシナリオでの認証と承認の要件に基づいて、さまざまな種類のアクセス資格情報を選択できます。このトピックでは、エンドポイント、一時アクセス資格情報、および長期アクセス資格情報を構成する方法について説明します。

エンドポイントを構成する

aliyun-mns.properties ファイルで SMQ のパブリックまたはインターナルエンドポイントを構成します。ほとんどの場合、このファイルは ${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 コンソールの [キューの詳細] ページまたは [トピックの詳細] ページの [エンドポイント] セクションで、SMQ のエンドポイントに関する情報を表示できます。image

アクセス資格情報を構成する

以下のタイプのアクセス資格情報がサポートされています。

  • 長期アクセス資格情報:データセキュリティを確保するために、長期アクセス資格情報は使用しないことをお勧めします。利便性が必要なシナリオの場合、長期アクセス資格情報を使用すると、長期間にわたって複数回更新する必要がなくなります。 Alibaba Cloud アカウントのセキュリティを確保するために、長期アクセス資格情報を 3 か月ごとに変更することをお勧めします。長期アクセス資格情報が漏洩した場合、または使用されなくなった場合は、長期アクセス資格情報を削除または無効にして、セキュリティリスクを軽減できます。

  • 一時アクセス資格情報:アプリケーションに SMQ へのアクセスを一時的に許可するなど、高いセキュリティが必要なシナリオでは、一時アクセス資格情報を使用することをお勧めします。一時アクセス資格情報は、資格情報の漏洩を防ぐために、特定の期間内のみ有効です。一時アクセス資格情報は、きめ細かいアクセス制御をサポートしており、過剰な権限によるセキュリティリスクを防ぎます。

長期アクセス資格情報を構成する

アプリケーションまたはサービスで Java 用 SDK を使用して長期間 SMQ にアクセスする場合、次のいずれかの方法を使用して長期アクセス資格情報を構成できます。

Resource Access Management(RAM)ユーザーの AccessKey ペアを構成する:長期間 SMQ にアクセスする場合は、RAM ユーザーの AccessKey ペアを使用できます。

  1. RAM ユーザーの AccessKey ペアを取得します。

    詳細については、「AccessKey ペアを作成する」トピックの RAM ユーザーの AccessKey を作成する セクションをご参照ください。

    重要

    3 か月以上使用されている RAM ユーザーの AccessKey ペアをローテーションすることをお勧めします。長期間使用されていない RAM ユーザーの AccessKey ペアを無効化して削除することをお勧めします。これにより、AccessKey ペアの漏洩のリスクが軽減されます。

  2. RAM ユーザーの AccessKey ペアをアクセス資格情報として構成します。

    環境変数を構成する

    1. 次のコマンドを実行して、環境変数を構成します。

      macOS

      1. ターミナルを開きます。

      2. 次のコマンドを実行します。

        nano ~/.bash_profile
      3. ファイルの末尾に RAM ユーザーの AccessKey ペアを追加します。

        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 ユーザーの AccessKey ペアを追加します。

        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 を使用しています。 GUI で環境変数を使用して RAM ユーザーの AccessKey ペアを構成するには、次の手順を実行します。

      1. Windows デスクトップで、[PC] を右クリックし、[この PC][プロパティ] を選択します。表示されるページで、[システムの詳細設定] をクリックします。 [システムのプロパティ] ダイアログボックスの [詳細設定] タブで、[環境変数] をクリックします。 [環境変数] ダイアログボックスの 新規[ユーザー環境変数] セクションまたは セクションで、 をクリックします。

      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. コマンドラインインターフェイス(CLI)を開きます。

      2. AccessKey ペアを使用して環境変数を構成するには、次のコマンドを実行します。

        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 ユーザーの AccessKey ペアを指定します。

        現在のセッションに対して有効
        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 ユーザーの AccessKey ペアを取得します。

      // 環境変数からアクセス資格情報を取得します。
      CloudAccount account = new CloudAccount(ServiceSettings.getMNSAccountEndpoint());

    コードにアクセス資格情報を埋め込む

    警告

    アクセス資格情報をコードに埋め込むと、セキュリティの問題が発生する可能性があります。漏洩したアクセス資格情報は、攻撃者がリソースにアクセスするために使用される可能性があり、データ侵害につながります。セキュリティを確保するために、環境変数からアクセス資格情報を取得するなど、より安全な方法を使用することをお勧めします。

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

一時アクセス資格情報を構成する

Java 用 SDK を使用して SMQ に一時的にアクセスする場合、次のいずれかの方法を使用して一時アクセス資格情報を構成できます。

  • STS によって提供される一時アクセス資格情報を構成する:特定の期間内に SMQ にアクセスする場合は、STS を使用して STS によって提供される一時アクセス資格情報を構成できます。一時アクセス資格情報を使用する場合、RAM ユーザーの AccessKey ペアを開示する必要はありません。これにより、SMQ への安全なアクセスが保証されます。

  • RAM ロールを構成する:Alibaba Cloud アカウントの RAM ユーザーまたは別の Alibaba Cloud アカウントの RAM ユーザーに SMQ へのアクセスを許可する場合は、RAM ユーザーの RAM ロールを構成できます。

  • Elastic Compute Service(ECS)インスタンスの RAM ロールを構成する:ECS インスタンスから SMQ にアクセスする場合は、ECS インスタンスに割り当てられている RAM ロールを使用して SMQ にアクセスできます。 ECS インスタンスに RAM ロールを割り当て、STS によって提供される一時アクセス資格情報に基づいて特定の方法を使用して ECS インスタンスから SMQ にアクセスできます。 STS によって提供される一時アクセス資格情報は自動的に生成および更新されます。アプリケーションは、インスタンスメタデータ URL を使用して、このような一時アクセス資格情報を取得できます。

STS によって提供される一時アクセス資格情報を構成する

  1. RAM ユーザーを作成します。

    RAM ユーザーの作成方法については、RAM ユーザーを作成する をご参照ください。

  2. AliyunSTSAssumeRoleAccess ポリシーを RAM ユーザーにアタッチします。

    詳細については、RAM ユーザーに権限を付与する をご参照ください。

  3. RAM ユーザーを使用して STS の AssumeRole オペレーションを呼び出し、一時アクセス資格情報を取得します。

    詳細については、AssumeRole をご参照ください。

  4. STS から取得した一時アクセス資格情報を構成します。

    環境変数を構成する

    1. STS から取得した一時アクセス資格情報を使用して、環境変数を構成します。

      macOS

      1. ターミナルを開きます。

      2. 次のコマンドを実行します。

        nano ~/.bash_profile
      3. STS から取得した一時アクセス資格情報(AccessKey ID、AccessKey Secret、およびセキュリティトークンを含む)をファイルの末尾に追加します。

        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 から取得した一時アクセス資格情報(AccessKey ID、AccessKey Secret、およびセキュリティトークンを含む)をファイルの末尾に追加します。

        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 を使用しています。 GUI で環境変数を使用して STS の一時アクセス資格情報を構成するには、次の手順を実行します。

      1. Windows デスクトップで、[PC] を右クリックし、この PC[プロパティ] を選択します。表示されるページで、[システムの詳細設定] をクリックします。 [システムのプロパティ] ダイアログボックスの [詳細設定] タブで、[環境変数] をクリックします。 [環境変数] ダイアログボックスの 新規[ユーザー環境変数] セクションまたは セクションで、 をクリックします。

      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. CLI を開きます。

      2. 一時アクセス資格情報(AccessKey ID、AccessKey Secret、およびセキュリティトークンを含む)を使用して環境変数を構成するには、次のコマンドを実行します。

        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、およびセキュリティトークンを含む)を取得します。
      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);

    コードにアクセス資格情報を埋め込む

    警告

    アクセス資格情報をコードに埋め込むと、セキュリティの問題が発生する可能性があります。漏洩したアクセス資格情報は、攻撃者がリソースにアクセスするために使用される可能性があり、データ侵害につながります。セキュリティを確保するために、環境変数からアクセス資格情報を取得するなど、より安全な方法を使用することをお勧めします。

    // 環境変数から RAM ユーザーの一時アクセス資格情報(AccessKey ID、AccessKey Secret、およびセキュリティトークンを含む)を取得します。
    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 ユーザーの AccessKey ペアを取得します。

    詳細については、「AccessKey ペアを作成する」トピックの RAM ユーザーの AccessKey を作成する セクションをご参照ください。

    重要

    RAM ユーザーの AccessKey ペアの漏洩リスクを軽減するために、AccessKey ペアを 3 か月ごとにローテーションすることをお勧めします。長期間使用されていない RAM ユーザーの AccessKey ペアを無効化して削除することをお勧めします。

  2. RAM ロールの RamRoleArn を取得します。

    説明

    RamRoleArn は、RAM ロールの Alibaba Cloud Resource Name(ARN)であり、引き受けるロールの ID です。形式:acs:ram::$accountID:role/$roleName。 $accountID は Alibaba Cloud アカウントの ID を示します。 $roleName は RAM ロールの名前を示します。

    詳細については、RAM ロールの情報を表示する をご参照ください。

  3. RAM ユーザーの AccessKey ペアと RAM ロールの ARN を一時アクセス資格情報として指定します。

    環境変数を構成する

    1. 取得した RAM ユーザーの AccessKey ペアと RAM ロールの RamRoleArn を使用して環境変数を構成します。

      macOS

      1. ターミナルを開きます。

      2. 次のコマンドを実行します。

        nano ~/.bash_profile
      3. ファイルの末尾に RAM ユーザーの AccessKey ペアと RAM ロールの ARN を追加します。

        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 ユーザーの AccessKey ペアと RAM ロールの ARN を追加します。

        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 を使用しています。 GUI で環境変数を使用して RAM ユーザーの AccessKey ペアと RAM ロールの ARN を構成するには、次の手順を実行します。

      1. Windows デスクトップで、[PC] を右クリックし、この PC[プロパティ] を選択します。表示されるページで、[システムの詳細設定] をクリックします。 [システムのプロパティ] ダイアログボックスの [詳細設定] タブで、[環境変数] をクリックします。 [環境変数] ダイアログボックスの 新規[ユーザー環境変数] セクションまたは セクションで、 をクリックします。

      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. CLI を開きます。

      2. RAM ユーザーの AccessKey ペアと RAM ロールの ARN を使用して環境変数を構成するには、次のコマンドを実行します。

        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 ユーザーの AccessKey ペアと RAM ロールの ARN を指定します。

        現在のセッションに対して有効

        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 ユーザーの AccessKey ペアと RAM ロールの ARN を取得します。

      // STSAssumeRole がアクセスすることを承認するリージョンを指定します。この例では、中国 (杭州) リージョンが使用されています。実際のケースに基づいてリージョンを指定してください。
      String region = "cn-hangzhou";
      // 環境変数から RAM ユーザーの AccessKey ペアを取得します。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されています。
      String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID");
      String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET");
      // 環境変数から RAM ロールの ARN を取得します。
      String roleArn = System.getenv("MNS_STS_ROLE_ARN");
      
      // AccessKey ペアと RAM ロールの ARN を使用して資格情報プロバイダーを作成します。
      STSAssumeRoleSessionCredentialsProvider credentialsProvider = CredentialsProviderFactory
              .newSTSAssumeRoleSessionCredentialsProvider(
                      region, 
                      accessKeyId, 
                      accessKeySecret, 
                      roleArn
              );

    コードにアクセス資格情報を埋め込む

    警告

    アクセス資格情報をコードに埋め込むと、セキュリティの問題が発生する可能性があります。漏洩したアクセス資格情報は、攻撃者がリソースにアクセスするために使用される可能性があり、データ侵害につながります。セキュリティを確保するために、環境変数からアクセス資格情報を取得するなど、より安全な方法を使用することをお勧めします。

    // MNS のエンドポイントは、regionId パラメーターで指定されたリージョンと一致する必要があります。
    String regionId = "cn-hangzhou";
    
    // 環境変数から RAM ユーザーの AccessKey ペアを取得します。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されています。
    String accessKeyId = System.getenv("MNS_ACCESS_KEY_ID");
    String accessKeySecret = System.getenv("MNS_ACCESS_KEY_SECRET");
    // 環境変数から RAM ロールの ARN を取得します。
    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");