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

Intelligent Media Services:RAM ロールを作成し、STS を使用した一時的なアクセス権限の付与

最終更新日:Mar 01, 2026

モバイルクライアントまたは Web クライアントで Intelligent Media Services (IMS) にアクセスする場合、Security Token Service (STS) を使用して一時的なアクセス権限を付与できます。これにより、Resource Access Management (RAM) ユーザーの AccessKey ペアの漏洩によるセキュリティリスクを効果的に防止できます。このトピックでは、STS を使用して IMS への一時的なアクセス権限を付与する方法について説明します。

背景情報

RAM ユーザーの AccessKey ペアは、有効化されると永続的に有効です。AccessKey ペアが漏洩すると、セキュリティリスクが発生する可能性があります。STS を使用して一時的なアクセス権限を付与することを推奨します。一時的な AccessKey ペアの有効期間をカスタマイズし、比較的複雑なポリシーを指定して異なる RAM ロールの権限を制限し、最小権限の原則 (PoLP) を遵守することで、サービスアクセスのセキュリティを向上させることができます。

ステップ 1:RAM ユーザーを作成し、AssumeRole 操作の呼び出し権限を付与する

  1. Alibaba Cloud アカウントまたは RAM 管理者として、RAM コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[ID] > > [ユーザー] を選択します。

  3. [ユーザー] ページで、[ユーザーの作成] をクリックします。

    image

  4. [ユーザーの作成] ページの [ユーザーアカウント情報] セクションで、ユーザーの基本情報を設定します。

    • [ログイン名]:英字、数字、ピリオド (.)、ハイフン (-)、アンダースコア (_) を含む名前を入力します。名前の長さは 64 文字までです。

    • [表示名]:最大 128 文字の名前を入力します。

    • [タグ]:鉛筆アイコンをクリックし、タグキーと値を入力します。RAM ユーザーにタグをアタッチして、タグでユーザーを管理します。

    説明

    [ユーザーの追加] をクリックすると、複数の RAM ユーザーをバッチで作成できます。

  5. [アクセスモード] を選択し、対応するパラメーターを設定します

  6. [OK] をクリックし、セキュリティ検証を完了します。RAM ユーザーの AccessKey ペアが自動的に生成されます。

    001

  7. [操作] 列の [コピー] をクリックし、コピーした AccessKey ID と AccessKey Secret を含むユーザー情報を保存します。

    重要

    AccessKey ペアは安全に保管してください。AccessKey Secret は RAM ユーザーの作成時にのみ表示されます。作成ページを閉じると、AccessKey Secret を表示することはできません。

  8. [ユーザー] ページで、作成した RAM ユーザーを見つけ、[操作] 列の [権限の追加] をクリックします。

  9. [権限の付与] パネルで、RAM ユーザーに権限を付与します。

    1. 権限付与の範囲を選択します。

      [リソース範囲] パラメーターを [アカウント] に設定します。IMS はリソースグループ範囲をサポートしていません。詳細については、「リソースディレクトリ、リソースグループ、タグサービスの相違点と関係」をご参照ください。

    2. プリンシパルを指定します。

      プリンシパルは、権限を付与する RAM ユーザーです。

    3. アクセスポリシーを選択します。

      [システムポリシー] を選択し、AliyunSTS と入力してから、[AliyunSTSAssumeRoleAccess] ポリシーを選択します。

    4. [OK] をクリックして権限付与を完了します。

ステップ 2:RAM ロールを作成し、IMS リソースの操作権限を付与する

  1. 管理権限を持つ RAM ユーザーとして RAM コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[ID] > [ロール] を選択します。

  3. [ロール] ページで、[ロールの作成] をクリックします。

    image

  4. [ロールの作成] ページで、[プリンシパルタイプ] パラメーターを [クラウドアカウント] に設定し、Alibaba Cloud アカウントを指定してから [OK] をクリックします。

    image

    • [現在のアカウント]:ご自身の Alibaba Cloud アカウントに属する RAM ユーザーまたは RAM ロールにこの RAM ロールを引き受けさせる場合は、[現在のアカウント] を選択します。

    • 他のアカウント: 別の Alibaba Cloud アカウントに属する RAM ユーザーまたは RAM ロールが RAM ロールを偽装する場合は、[他のアカウント] を選択し、Alibaba Cloud アカウントの ID を入力します。このオプションは、異なる Alibaba Cloud アカウントに属するリソースに権限を付与するために提供されています。詳細については、「RAM ロールを使用して Alibaba Cloud アカウント間でアクセスを委任する」をご参照ください。Alibaba Cloud アカウントの ID は、[セキュリティ設定] ページで確認できます。

  5. 任意。信頼された Alibaba Cloud アカウントに属する特定の RAM ユーザーまたは RAM ロールのみにこの RAM ロールを引き受けさせる場合は、[ポリシーエディターに切り替え] をクリックし、エディターで RAM ロールの信頼ポリシーを変更します。

    エディターは、ビジュアルエディターと JSON モードをサポートしています。以下の例では、ID が 100******0719 の Alibaba Cloud アカウント内の RAM ユーザー Alice のみがこの RAM ロールを引き受けることができます。

    • ビジュアルエディター

      [プリンシパル] 要素に RAM ユーザーを指定します。

      image

      image

    • JSON

      Principal パラメーターの RAM フィールドに RAM ユーザーを指定します。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "RAM": "acs:ram::100******0719:user/Alice"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }

  6. [権限の付与] パネルで、RAM ロールに権限を付与します。

    1. 権限付与の範囲を設定します。

      [リソース範囲] パラメーターを [アカウント] に設定します。IMS では、[リソース範囲] パラメーターを [リソースグループ] に設定することはできません。リソースグループの詳細については、「リソースディレクトリ、リソースグループ、タグサービスの相違点と関係」をご参照ください。

    2. プリンシパルを指定します。

      プリンシパルは、権限が付与される RAM ロールです。デフォルトでは、現在の RAM ロールが指定されます。別の RAM ロールを指定することもできます。

    3. [ポリシー] セクションでポリシーを選択します。

      • システムポリシーの使用

        ドロップダウンリストから [システムポリシー] を選択し、検索ボックスに AliyunICE と入力してから、ビジネス要件に基づいてシステムポリシーを選択します。

        ポリシー

        説明

        API 操作

        AliyunICEFullAccess

        すべての IMS リソースを管理および操作する権限

        このポリシーは、IMS のすべての操作に対する権限を付与します。

        AliyunICEReadOnlyAccess

        すべての IMS リソースに対する読み取り専用権限

        このポリシーは、Get、Describe、Search、List 操作など、IMS のすべての読み取り専用操作に対する権限を付与します。

      • カスタムポリシーの使用

        ドロップダウンリストから [カスタムポリシー] を選択し、ビジネス要件に基づいてカスタムポリシーを選択します。利用可能なカスタムポリシーがない場合は、作成できます。詳細については、「カスタムポリシーの作成」またはこのトピックの「カスタムポリシーのサンプル」セクションをご参照ください。

      説明
      • 一度に最大 5 つのポリシーを RAM ユーザーにアタッチできます。5 つ以上のポリシーを RAM ユーザーにアタッチする場合は、操作を繰り返してください。

      • リスクを管理するために、最小権限の原則を遵守することを推奨します。

      • IMS SDK for iOS または Android を使用する場合、ビジネス要件に応じて AliyunOSSFullAccess ポリシーまたはカスタムの Object Storage Service (OSS) ポリシーを指定する必要があります。これは、SDK がファイルを OSS にアップロードする必要があるためです。

    4. [OK] をクリックして権限付与を完了します。

ステップ 3:RAM ユーザーを使用して AssumeRole を呼び出し、一時的な AccessKey ペアを取得する

  1. STS SDK をダウンロードして統合します。詳細については、「STS SDK の概要」をご参照ください。

  2. AssumeRole API を呼び出して、ロールの一時的な ID 認証情報を取得します。

    このトピックでは、Java コードの例を示します。他の言語のサンプルコードについては、「SDK サンプルコード」をご参照ください。

    Java

    import com.aliyun.tea.*;
    
    public class Sample {
    
        /**
         * description :
         * <p>認証情報を使用してクライアントを初期化します。</p>
         * @return Client
         * 
         * @throws Exception
         */
        public static com.aliyun.sts20150401.Client createClient() throws Exception {
            // プロジェクトコードを実行するには、認証情報を使用しない方法を推奨します。認証情報の設定方法の詳細については、https://help.alibabacloud.com/document_detail/378657.html をご参照ください。
            com.aliyun.credentials.Client credential = new com.aliyun.credentials.Client();
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    .setCredential(credential);
            // エンドポイントの詳細については、https://api.alibabacloud.com/product/Sts をご参照ください。
            config.endpoint = "sts.us-west-1.aliyuncs.com";
            return new com.aliyun.sts20150401.Client(config);
        }
    
        public static void main(String[] args_) throws Exception {
    
            com.aliyun.sts20150401.Client client = Sample.createClient();
            // AssumeRole API 操作のリクエストパラメーターは、RoleArn、RoleSessionName、Policy、および DurationSeconds です。
            // RoleArn パラメーターは RAM コンソールから取得できます。
            com.aliyun.sts20150401.models.AssumeRoleRequest assumeRoleRequest = new com.aliyun.sts20150401.models.AssumeRoleRequest()
                    .setDurationSeconds(3600L)
                    // ポリシーをカスタマイズします。
                    .setPolicy("{\n" +
                            "  \"Version\": \"1\",\n" +
                            "  \"Statement\": [\n" +
                            "    {\n" +
                            "      \"Action\": \"ice:*\",\n" +
                            "      \"Resource\": \"*\",\n" +
                            "      \"Effect\": \"Allow\"\n" +
                            "    }\n" +
                            "  ]\n" +
                            "}")
                    // RoleArn パラメーターは RAM コンソールから取得できます。
                    .setRoleArn("<role-arn>")
                    // RoleSessionName は一時的なトークンのセッション名です。ユーザーを識別するためにカスタム名を指定します。この名前は、監査やトークンの発行先を区別するために使用されます。
                    // RoleSessionName の長さとルールにご注意ください。スペースを含めることはできず、文字、数字、ハイフン (-)、アンダースコア (_) のみ使用できます。
                    // フォーマット要件の詳細については、API ドキュメントをご参照ください。
                    .setRoleSessionName("session-name");// カスタム名。
            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                com.aliyun.sts20150401.models.AssumeRoleResponse resp = client.assumeRoleWithOptions(assumeRoleRequest, runtime);
                com.aliyun.teaconsole.Client.log(com.aliyun.teautil.Common.toJSONString(resp));
            } catch (TeaException error) {
                // これは、印刷およびデモのみを目的としています。例外は慎重に処理してください。プロジェクトで例外を無視しないでください。
                // エラーメッセージ
                System.out.println(error.getMessage());
                // 診断アドレス
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // これは、印刷およびデモのみを目的としています。例外は慎重に処理してください。プロジェクトで例外を無視しないでください。
                // エラーメッセージ
                System.out.println(error.getMessage());
                // 診断アドレス
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            }
        }
    }

関連 API

AssumeRole