このトピックでは、オブジェクトストレージサービス(OSS)および OSS-HDFS へのアクセス権を付与する方法について説明します。
OSS へのアクセス権の付与
カスタムポリシーを使用して、OSS データに対する RAM ユーザーのアクセス許可を柔軟に定義できます。次の手順を実行します。
Alibaba Cloud アカウントを使用して、RAM コンソール にログインします。
左側のナビゲーションペインで、[権限] > [ポリシー] を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックします。
ポリシードキュメントを入力し、[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>を、権限を付与するバケットの名前に置き換えます。[名前] パラメーターと [説明] パラメーターを設定し、[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 へのアクセス権の付与
Alibaba Cloud アカウントを使用して、RAM コンソール にログインします。
左側のナビゲーションペインで、[権限] > [ポリシー] を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックします。
ポリシードキュメントを入力し、[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" }[名前] パラメーターと [説明] パラメーターを設定し、[OK] をクリックします。