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

MaxCompute:STS に基づく権限付与

最終更新日:Feb 27, 2026

MaxCompute は、Alibaba Cloud Resource Access Management (RAM) とセキュリティトークンサービス (STS) を使用して、データアクセスを保護します。このトピックでは、RAM と STS を使用して権限を付与する方法について説明します。

通常のロールに対する OSS STS に基づく権限付与

MaxCompute の外部テーブルが OSS データに直接アクセスできるようにするには、まず必要な OSS 権限を MaxCompute アカウントに付与します。次のいずれかの方法を使用します。

  • ワンクリック権限付与 (推奨): MaxCompute と OSS が同じ Alibaba Cloud アカウントに属している場合は、お使いの Alibaba Cloud アカウントにログインし、ここをクリックしてワンクリック権限付与を完了します

    説明

    デフォルトの AliyunODPSDefaultRole には広範な権限があります。これはあくまでリファレンスとしてのみ使用してください。MaxCompute の外部テーブルまたは外部データソースがアクセスする必要がある外部データに基づいて、リソースアクセス管理 (RAM) コンソールで適切なアクセスポリシーおよび信頼ポリシーを設定してください。

  • カスタム権限付与: MaxCompute と OSS が同じ Alibaba Cloud アカウントに属しているかどうかにかかわらず、この方法を使用します。次の手順に従います。

    • MaxCompute と OSS が同じ Alibaba Cloud アカウントに属している場合は、信頼ポリシーで serviceodps.aliyuncs.com に設定します。

    • MaxCompute および OSS が 異なる Alibaba Cloud アカウント に属する場合、信頼ポリシーで [service]<MaxCompute オーナーの Alibaba Cloud アカウント ID>@odps.aliyuncs.com に設定します。MaxCompute オーナーの Alibaba Cloud アカウント ID は、[アカウント概要] ページで確認できます。

    1. RAM ロールを作成します。

      リソースアクセス管理 (RAM) コンソールにログインします。次に、リソースアクセス管理 (RAM) コンソール を使用して、RAM ロールを作成します。たとえば、oss-admin という名前のロールを作成します。ロールの作成について詳しくは、「信頼できるエンティティが Alibaba Cloud アカウントである RAM ロールを作成する」をご参照ください。イメージ

    2. RAM ロールの信頼ポリシーを編集します。

      1. リソースアクセス管理 (RAM) コンソールにログインします。リソースアクセス管理 (RAM) コンソール

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

      3. ロール」ページで、対象の[ロール名]をクリックして、その詳細ページを開きます。

      4. [信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。[信頼ポリシーの編集] ページで、[JSON] タブをクリックします。

        次のポリシーを設定します。

        MaxCompute と OSS が同じ Alibaba Cloud アカウントに属している場合

        {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "odps.aliyuncs.com"
                ]
              }
            }
          ],
          "Version": "1"
        }

        MaxCompute と OSS が異なる Alibaba Cloud アカウントに属している場合

        {
        "Statement": [
        {
         "Action": "sts:AssumeRole",
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "<Alibaba Cloud account ID of the MaxCompute owner>@odps.aliyuncs.com"
           ]
         }
        }
        ],
        "Version": "1"
        }
      5. 作業が完了したら、 [OK] をクリックします。

    3. アクセスポリシーを作成します。

      RAM コンソールの [ポリシー] ページで、アクセスポリシーを作成します。たとえば、AliyunODPSRolePolicy という名前のポリシーを作成します。

      次のポリシーは、一般的な OSS 権限を付与します。必要に応じて、その他の権限をカスタマイズできます。詳細については、「カスタムアクセスポリシーを作成する」をご参照ください。

      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
         "oss:ListBuckets",
         "oss:GetObject",
         "oss:ListObjects",
         "oss:PutObject",
         "oss:DeleteObject",
         "oss:AbortMultipartUpload",
         "oss:ListParts"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }
    4. 新しいアクセスポリシーを新しい RAM ロールにアタッチします。

      1. リソースアクセス管理 (RAM) コンソール」にログインします。

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

      3. [ロール] ページで、詳細ページを開くために対象の [ロール名] をクリックします。

      4. [権限] タブで、[権限付与] をクリックします。[権限付与] パネルで、ロールのアクセスポリシーを選択し、[OK] をクリックします。

        詳細については、「RAM ロールの権限を管理する」をご参照ください。

通常のロールに対する Tablestore STS に基づく権限付与

MaxCompute の外部テーブルが Tablestore データに直接アクセスできるようにするには、まず必要な Tablestore 権限を MaxCompute アカウントに付与します。次のいずれかの方法を使用します。

  • ワンクリックでの権限付与 (推奨): MaxCompute と Tablestore が同じ Alibaba Cloud アカウントに属している場合、Alibaba Cloud アカウントにログインし、ここをクリックしてワンクリックでの権限付与を完了します

  • カスタム権限付与: MaxCompute と Tablestore が異なる Alibaba Cloud アカウントに属している場合は、この方法を使用します。カスタムロールを作成し、権限を付与します。

    1. RAM ロールを作成します。

      OTS アカウントを使用して、リソースアクセス管理 (RAM) コンソール にログインし、RAM コンソールの RAM ロール セクションを通じてロールを作成します。たとえば、ロール名は oss-admin-ots です。

      ロールの作成の詳細については、「信頼できるエンティティが Alibaba Cloud アカウントである RAM ロールの作成」をご参照ください。

    2. RAM ロールの信頼ポリシーを編集します。

      MaxCompute と Tablestore が異なる Alibaba Cloud アカウントに属している場合は、MaxCompute から Tablestore へのクロスアカウントアクセスをサポートするために、以下に示すように信頼ポリシーを設定します。

      1. リソースアクセス管理 (RAM) コンソールにログインします。リソースアクセス管理 (RAM) コンソール

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

      3. [ロール] ページで、対象の [ロール名] をクリックして、その詳細ページを開きます。

      4. [信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。[信頼ポリシーの編集] ページで、[JSON] タブをクリックします。

        次の信頼ポリシーを設定します。

        {
        "Statement": [
        {
         "Action": "sts:AssumeRole",
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "<Alibaba Cloud account ID of the MaxCompute owner>@odps.aliyuncs.com"
           ]
         }
        }
        ],
        "Version": "1"
        }

        MaxCompute オーナーの Alibaba Cloud アカウント ID は、Tablestore にアクセスするアカウントです。

    3. アクセスポリシーを作成します。

      RAM コンソールの ポリシー ページで、アクセスポリシーを作成します。たとえば、AliyunODPSRolePolicy という名前のポリシーを作成します。

      次のポリシーは、一般的な Tablestore 権限を付与します。必要に応じて他の権限をカスタマイズできます。詳細については、「カスタムアクセスポリシーの作成」をご参照ください。

      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
         "ots:ListTable",
         "ots:DescribeTable",
         "ots:GetRow",
         "ots:PutRow",
         "ots:UpdateRow",
         "ots:DeleteRow",
         "ots:GetRange",
         "ots:BatchGetRow",
         "ots:BatchWriteRow",
         "ots:ComputeSplitPointsBySize"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }
    4. AliyunODPSRolePolicy アクセスポリシーを新しい RAM ロールにアタッチします。

      1. リソースアクセス管理 (RAM) コンソールにログインします。

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

      3. [ロール] ページで、対象の [ロール名] をクリックして詳細ページを開きます。

      4. [権限] タブで、[権限の付与] をクリックします。権限の付与 パネルで、ロールのアクセスポリシーを選択し、[OK] をクリックします。

        詳細については、「RAM ロールの権限管理」をご参照ください。

通常のロールに対する Hologres STS に基づく権限付与

MaxCompute の外部テーブルが Hologres データに直接アクセスできるようにするには、まず必要な Hologres 権限を MaxCompute アカウントに付与します。このセクションでは、STS を使用してアクセスを権限付与する方法について説明します。

  1. RAM ロールの作成

    RAM ロールを作成してその ARN を取得します。外部テーブルを作成して STS 認証を設定する際に、この ARN を使用します。ニーズに基づいて信頼できるエンティティのタイプを選択します。この例では、信頼できるエンティティは Alibaba Cloud アカウントです。

    次の手順に従います。

    1. Resource Access Management (RAM) コンソールにログインします。

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

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

  2. 信頼ポリシーの編集

    1. [ロール] ページで、目的の [ロール名] をクリックして、その詳細ページを開きます。

    2. [信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。[信頼ポリシーの編集] ページで、[JSON] タブをクリックします。

    3. 以下に示すように信頼ポリシーを更新します。

      信頼ポリシーは、選択する信頼できるエンティティのタイプによって異なります。 <UID> を、お使いの Alibaba Cloud アカウント ID に置き換えます。 Alibaba Cloud アカウント ID は、[ユーザー情報] ページで確認できます。

      信頼できるエンティティのタイプ: Alibaba Cloud アカウント

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "acs:ram::<UID>:root"
              ]
            }
          },
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "<UID>@odps.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }

      信頼できるエンティティのタイプ: ID プロバイダー

      {
        "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                          "saml:recipient": "https://signin.aliyun.com/saml-role/sso"
                      }
                  },
                  "Effect": "Allow",
                  "Principal": {
                      "Federated": [
                          "acs:ram::<UID>:saml-provider/IDP"
                      ]
                  }
              },
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "<UID>@odps.aliyuncs.com"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
  3. Hologres インスタンスに RAM ロールを追加し、権限を付与

    RAM ロールは、Hologres インスタンスに対する開発権限を持っている必要があり、その権限スコープ内で Hologres を使用できます。

    デフォルトでは、RAM ロールには Hologres マネジメントコンソールで Hologres インスタンスを表示または管理する権限がありません。続行する前に、Alibaba Cloud アカウントがこれらの権限を付与する必要があります。

    Hologres インスタンスに RAM ロールを追加するには、次の手順に従います。

    Hologres マネジメントコンソールを介した権限付与

    1. Hologres マネジメントコンソールにログインし、左上隅でリージョンを選択します。

    2. 左側のナビゲーションウィンドウで、[インスタンス] を選択します。

    3. [インスタンス] ページで、対象のインスタンス名をクリックします。

    4. インスタンスの詳細ページで、左側のナビゲーションウィンドウから [アカウント管理] を選択します。

    5. [ユーザー管理] ページで、[ユーザーの追加] をクリックします。

    6. ポップアップ表示される[ユーザーの追加] ダイアログボックスで、必要な情報を設定し、[OK] をクリックします。

      • AliyunODPSDefaultRole ロールを選択します。

      • メンバーロールとして 通常ユーザー を選択します。

    7. [ユーザー管理] ページで、左側のナビゲーションウィンドウから [データベース承認] を選択します。

    8. [データベース承認] ページで、[データベースの作成] をクリックします。

    9. データベースの作成」ダイアログボックスで、パラメーターを設定し、[OK]をクリックします。

      [権限ポリシー] SPM を選択します。

    10. データベース承認」ページで、対象のデータベースの操作列のユーザーを承認をクリックします。

    11. 右上隅にある[権限の付与]をクリックします。表示される[権限の付与]ダイアログボックスで、[ユーザー][ユーザーグループ]を設定します。

      • [ユーザー] 設定する RAM ユーザーを選択します。

      • ユーザーグループ デベロッパーを選択してください。

    RAM コンソールを介した権限付与

    AliyunODPSRolePolicy アクセスポリシーを新しい RAM ロールにアタッチします。

    1. Resource Access Management (RAM) コンソールにログインします。

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

    3. [ユーザー] ページで、対象のユーザーの [ユーザーログオン名/表示名] をクリックすると、ユーザー詳細ページが開きます。

    4. ユーザー詳細ページで、権限 タブをクリックします。

    5. [権限] タブで、[個人] を選択し、[権限を付与] をクリックします。

    6. 権限の付与」パネルで、アクセスポリシーを選択し、[OK] をクリックします。

      AliyunRAMReadOnlyAccess 権限ポリシーを選択します。

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

    SQL を使用した権限付与

    SQL に基づく権限付与については、「Hologres 権限モデル」をご参照ください。

説明

Hologres はデュアル署名認証もサポートしています。詳細については、「Hologres 外部テーブル」をご参照ください。

DLF+OSS STS に基づく通常のロールの権限付与

MaxCompute、DLF、および OSS を使用してデータレイクハウスを構築する場合、MaxCompute プロジェクトは権限付与されない限り DLF または OSS にアクセスできません。次のいずれかの方法を使用してアクセスを権限付与します。

  • ワンクリック権限付与 (推奨): MaxCompute プロジェクトを作成する Alibaba Cloud アカウントが、DLF と OSS をデプロイするアカウントと同じである場合は、この方法を使用します。DLF と OSS の権限付与をクリックしてワンクリック権限付与を完了します。

  • カスタム権限付与: MaxCompute プロジェクトを作成する Alibaba Cloud アカウントが、DLF と OSS をデプロイするアカウントと同じであるかどうかにかかわらず、この方法を使用します。次の手順に従います。

    • MaxCompute プロジェクトの RAM ユーザーと DLF をデプロイするアカウントが同じである場合は、信頼ポリシーで serviceodps.aliyuncs.com に設定します。

    • MaxCompute プロジェクトの RAM ユーザーと DLF をデプロイするアカウントが異なる場合、信頼ポリシーで [service]<Alibaba Cloud account ID of the MaxCompute owner>@odps.aliyuncs.com に設定します。[MaxCompute オーナーの Alibaba Cloud アカウント ID] は、[アカウントの概要] ページで確認できます。

    1. [Resource Access Management (RAM) コンソール]にログインし、信頼できるエンティティが Alibaba Cloud アカウントである RAM ロールを作成します。

    2. Resource Access Management (RAM) コンソールで、RAM ロールの信頼ポリシーを変更します。信頼ポリシーは次のとおりです。

      MaxCompute プロジェクトを作成する Alibaba Cloud アカウントが、DLF をデプロイするアカウントと同じである場合

      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "odps.aliyuncs.com"
         ]
       }
      }
      ],
      "Version": "1"
      }

      MaxCompute プロジェクトを作成する Alibaba Cloud アカウントが、DLF をデプロイするアカウントと異なる場合

      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "<Alibaba Cloud account ID of the MaxCompute owner>@odps.aliyuncs.com"  
         ]
       }
      }
      ],
      "Version": "1"
      }
    3. Resource Access Management (RAM) コンソールで、新しい RAM ロール用のカスタムポリシーを作成します。詳細については、「カスタムポリシーの作成」をご参照ください。カスタムポリシーは次のとおりです。

      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
         "oss:ListBuckets",
         "oss:GetObject",
         "oss:ListObjects",
         "oss:PutObject",
         "oss:DeleteObject",
         "oss:AbortMultipartUpload",
         "oss:ListParts"
       ],
       "Resource": "*",
       "Effect": "Allow"
      },
      {
       "Action": [
       "dlf:CreateFunction",
      "dlf:BatchGetPartitions",
      "dlf:ListDatabases",
      "dlf:CreateLock",
      "dlf:UpdateFunction",
      "dlf:BatchUpdateTables",
      "dlf:DeleteTableVersion",
      "dlf:UpdatePartitionColumnStatistics",
      "dlf:ListFunctions",
      "dlf:DeleteTable",
      "dlf:GetTableVersion",
      "dlf:AbortLock",
      "dlf:GetTable",
      "dlf:BatchDeleteTables",
      "dlf:RenameTable",
      "dlf:RefreshLock",
      "dlf:DeletePartition",
      "dlf:UnLock",
      "dlf:GetLock",
      "dlf:GetDatabase",
      "dlf:GetFunction",
      "dlf:BatchCreatePartitions",
      "dlf:ListPartitionNames",
      "dlf:RenamePartition",
      "dlf:CreateTable",
      "dlf:BatchCreateTables",
      "dlf:UpdateTableColumnStatistics",
      "dlf:ListTableNames",
      "dlf:UpdateDatabase",
      "dlf:GetTableColumnStatistics",
      "dlf:ListFunctionNames",
      "dlf:ListPartitionsByFilter",
      "dlf:GetPartitionColumnStatistics",
      "dlf:CreatePartition",
      "dlf:CreateDatabase",
      "dlf:DeleteTableColumnStatistics",
      "dlf:ListTableVersions",
      "dlf:BatchDeletePartitions",
      "dlf:ListCatalogs",
      "dlf:UpdateTable",
      "dlf:ListTables",
      "dlf:DeleteDatabase",
      "dlf:BatchGetTables",
      "dlf:DeleteFunction"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }
    4. 新しい RAM ロールにカスタムアクセスポリシーをアタッチします。詳細については、「RAM ロールの権限を管理する」をご参照ください。

Hologres STS に基づくサービスリンクロールの権限付与

MaxCompute が外部データソースと外部プロジェクトを介して Hologres データにアクセスできるようにするには、まず必要な Hologres 権限を MaxCompute アカウントに付与します。

タスクエグゼキュータ ID の使用とは、Hologres アクセス権限を MaxCompute サービスリンクロールに付与し、タスクエグゼキュータ ID を Hologres に渡すことを意味します。両方のサービスは、現在のタスクエグゼキュータをそれぞれの権限スコープに制限します。したがって、MaxCompute サービスリンクロールを事前に作成して権限付与する必要があります。次のいずれかの方法を使用します。

  1. [リソースアクセス管理 (RAM) コンソール] にログインします。

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

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

  4. ロールの作成」ページの右上隅で、[サービス関連ロールの作成] をクリックします。

  5. [サービス関連ロールの作成] ページで、[サービスの選択] で aliyunserviceroleformaxcomputeidentitymgmt を選択し、[サービス関連ロールの作成] をクリックします。

    ロールが既に存在するとシステムに表示される場合は、この手順をスキップします。

Paimon_DLF STS に基づくサービスリンクロールの権限付与

MaxCompute が外部データソースと外部プロジェクトを介して Paimon_DLF データにアクセスできるようにするには、まず必要な DLF 権限を MaxCompute アカウントに付与します。

タスクエグゼキュータ ID の使用とは、DLF アクセス権限を MaxCompute サービスリンクロールに付与し、タスクエグゼキュータ ID を DLF に渡すことを意味します。両方のサービスは、現在のタスクエグゼキュータをそれぞれの権限スコープに制限します。したがって、MaxCompute サービスリンクロールを事前に作成して権限付与する必要があります。次のいずれかの方法を使用します。

  1. Resource Access Management (RAM) コンソールにログインします。

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

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

  4. [ロールの作成]」ページの右上隅で、「[サービス関連ロールの作成]」をクリックします。

  5. サービス関連ロールの作成」ページで、[サービスの選択]AliyunServiceRoleForMaxComputeLakehouse を選択し、「サービス関連ロールの作成」をクリックします。

    ロールが既に存在するとシステムに表示される場合は、この手順をスキップします。