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

E-MapReduce:OSS または OSS-HDFS へのアクセス権の付与

最終更新日:Mar 18, 2025

このトピックでは、オブジェクトストレージサービス(OSS)および OSS-HDFS へのアクセス権を付与する方法について説明します。

OSS へのアクセス権の付与

カスタムポリシーを使用して、OSS データに対する RAM ユーザーのアクセス許可を柔軟に定義できます。次の手順を実行します。

  1. Alibaba Cloud アカウントを使用して、RAM コンソール にログインします。

  2. 左側のナビゲーションペインで、[権限] > [ポリシー] を選択します。

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

  4. [ポリシーの作成] ページで、[JSON] タブをクリックします。

  5. ポリシードキュメントを入力し、[OK] をクリックします。

    OSS は、データ権限管理のための完全なシステムを提供します。 OSS 用の RAM ポリシーの設定方法の詳細については、「RAM ポリシー」をご参照ください。

    重要

    ポリシーを設定する際は、最小権限の原則に従うことをお勧めします。クラスターに Hive と Spark をデプロイする場合は、OSS のバージョニング機能が有効になっているかどうかに関係なく、oss:ListObjectVersions ポリシーと oss:DeleteObjectVersion ポリシーを設定する必要があります。 EMR は、_temporary、.staging、.hive-staging、__magic などの一般的な一時ディレクトリに対してバージョニング機能をトリガーします。

    カスタムポリシーの例:

           {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "oss:ListObjects",
                "oss:GetBucketInfo",
                "oss:PutObject",
                "oss:GetObject",
                "oss:DeleteObject",
                "oss:AbortMultipartUpload",
                "oss:ListMultipartUploads",
                "oss:ListParts",
                "oss:RestoreObject",
                "oss:ListObjectVersions",
                "oss:DeleteObjectVersion"
              ],
              "Resource": [
                "acs:oss:*:*:<yourBucketName>", // バケット名を置き換えます
                "acs:oss:*:*:<yourBucketName>/*" // バケット名を置き換えます
              ],
              "Effect": "Allow"
            },
            {
              "Action": [
                "oss:ListBuckets"
              ],
              "Resource": "*",
              "Effect": "Allow"
            }
          ]
        }
    説明

    ポリシードキュメントで、<yourBucketName> を、権限を付与するバケットの名前に置き換えます。

  6. [名前] パラメーターと [説明] パラメーターを設定し、[OK] をクリックします。

その他のシナリオ

  • OSS への読み取り専用アクセス権の付与

    重要

    ポリシーを設定する際は、最小権限の原則に従うことをお勧めします。クラスターに Hive と Spark をデプロイする場合は、OSS のバージョニング機能が有効になっているかどうかに関係なく、oss:ListObjectVersions ポリシーを設定する必要があります。 EMR は、_temporary、.staging、.hive-staging、__magic などの一般的な一時ディレクトリに対してバージョニング機能をトリガーします。

           {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "oss:ListObjects",
                "oss:GetBucketInfo",
                "oss:GetObject",
                "oss:RestoreObject",
                "oss:ListObjectVersions"
              ],
              "Resource": [
                "acs:oss:*:*:<yourBucketName>", // バケット名を置き換えます
                "acs:oss:*:*:<yourBucketName>/*" // バケット名を置き換えます
              ],
              "Effect": "Allow"
            },
            {
              "Action": [
                "oss:ListBuckets"
              ],
              "Resource": "*",
              "Effect": "Allow"
            }
          ]
        }
  • バージョニング機能が有効になっている OSS バケットへのアクセス権の付与

    重要

    OSS のバージョニング機能は有効にしないことをお勧めします。 パフォーマンスの問題が発生する可能性があります。

           {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "oss:ListObjects",
                "oss:GetBucketInfo",
                "oss:PutObject",
                "oss:GetObject",
                "oss:DeleteObject",
                "oss:AbortMultipartUpload",
                "oss:ListMultipartUploads",
                "oss:ListParts",
                "oss:RestoreObject",
                "oss:ListObjectVersions",
                "oss:GetObjectVersion",
                "oss:DeleteObjectVersion",
                "oss:RestoreObjectVersion"
              ],
              "Resource": [
                "acs:oss:*:*:<yourBucketName>", // バケット名を置き換えます
                "acs:oss:*:*:<yourBucketName>/*" // バケット名を置き換えます
              ],
              "Effect": "Allow"
            },
            {
              "Action": [
                "oss:ListBuckets"
              ],
              "Resource": "*",
              "Effect": "Allow"
            }
          ]
        }
    説明

    AccessDenied の問題を回避するために、OSS バケットに必要なすべての権限を関連ユーザーに付与することをお勧めします。

OSS-HDFS へのアクセス権の付与

  1. Alibaba Cloud アカウントを使用して、RAM コンソール にログインします。

  2. 左側のナビゲーションペインで、[権限] > [ポリシー] を選択します。

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

  4. [ポリシーの作成] ページで、[JSON] タブをクリックします。

  5. ポリシードキュメントを入力し、[OK] をクリックします。カスタムポリシーの例:

    {
        "Statement": [
            {
              "Effect": "Allow",
              "Action": "oss:ListObjects",
              "Resource": [
                "acs:oss:*:*:*"
              ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "oss:GetBucketInfo",
                    "oss:PostDataLakeStorageFileOperation",
                    "oss:PostDataLakeStorageAdminOperation"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "oss:*",
                "Resource": [
                    "acs:oss:*:*:*/.dlsdata",
                    "acs:oss:*:*:*/.dlsdata*"
                ]
            }
        ],
        "Version": "1"
    }
  6. [名前] パラメーターと [説明] パラメーターを設定し、[OK] をクリックします。