ここでは、MaxCompute が OSS にアクセスするためのアクセス権限を RAM でカスタマイズする方法を説明します。

外部テーブルの作成時、保存先アクセス OSS アカウントは、プレーンテキストの AccessKeyIdAccessKeySecret を入力できますが、アカウント漏洩のリスクがあります。 シナリオによっては、このリスクは許容できないため、MaxCompute は OSS にアクセスするためのより安全な方法を提供します。

MaxCompute は、Alibaba Cloud のアクセス制御サービス (RAM) とトークンサービス (STS) を組み合わせて、アカウントのセキュリティ問題に対処しています。 権限を与えるには 2 つの方法があります。
  • MaxCompute と OSS の所有者が同じアカウントの場合、ワンクリック認証操作を RAM コンソールで直接実行できます。
  • カスタム認証。
    1. 最初に、RAM で OSS へのアクセスを MaxCompute に許可する必要があります。 AliyunODPSDefaultRoleAliyunODPSRoleForOtherUser などのロール名を作成し、ポリシーの内容を設定します。
      -- MaxCompute と OSS の所有者が同じアカウントの場合
      
      "Statement ":[
      
      "Action": "STS: apererole ",
      "Effect": "allow ",
      "Principal ":{
      "Service ":[
      "Maid"
      
      }
      
      
      "Version": "1"
      
      -- MaxCompute と OSS の所有者が同じアカウントでない場合
      
      "Statement ":[
      
      "Action": "STS: apererole ",
      "Effect": "allow ",
      "Principal ":{
      "Service ":[
      "MaxCompute's owner cloud account page"
      
      
      
      
      "Version": "1"
      
    2. OSS * へのアクセスに必要な権限をロールに付与します。 以下のように設定します。
      
      Version: "1 ",
      "Statement ":[
      
      "Action ":[
       "Oss: listbuckets ",
       "Oss: GetObject ",
       "Oss: maid ",
       "Oss: putobject ",
       "Oss: deleteobject ",
       "Oss: maid ",
       "Oss: listparts"
      
      "Resource ":"*",
      "Effect": "allow"
      
      
      
      -- 他の権限をカスタマイズ可能
    3. その後、権限ボックスがロールに付与されます。
承認が完了したらロールの詳細を表示してロールの RAN 情報を取得します。 OSS 外部テーブルを作成するときには、この RAN 情報を指定する必要があります。