部門が OSS に保存されたデータを共有する場合、受信者に読み取りアクセスを許可しつつ、書き込みおよび削除権限を公開しないことが課題となります。バケットポリシーを使用すると、関与する RAM ユーザーの RAM ポリシーを変更することなく、バケットに対して直接細かい粒度のアクセスルールを定義できます。このため、中央集約型の権限割り当てを変更せずにアクセス制御を行う必要がある場合、部門間またはアカウント間のデータ共有には、バケットポリシーが最適な手段です。
本チュートリアルでは、部門 A がバケットにデータを格納し、部門 B にダウンロード専用のアクセス権を付与するシナリオを説明します。すべての構成は、部門 A の管理者が最小権限の原則に従って実行します。
注: バケットポリシーはバケットに対して直接適用され、RAM ポリシーの変更を必要としません。部門間またはクロスアカウントアクセスを RAM の権限割り当てを変更せずに付与する場合は、バケットポリシーをご利用ください。
以下の図は、example-bucket バケットに対する、両部門の管理者およびユーザーの期待される権限を示しています。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
同じ Alibaba Cloud アカウント内で、部門 A および部門 B の管理者とユーザーのために作成された RAM ユーザーです。「RAM ユーザーを作成する」をご参照ください。
部門 B の RAM ユーザーの UID については、「RAM ユーザーの情報を表示する」をご参照ください。
AliyunOSSFullAccess ポリシーが部門 A の管理者の RAM ユーザグループにアタッチされているため、管理者はバケットを作成し、バケットポリシーを設定できます。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
手順 1:バケットの作成
部門 A の管理者として、OSS コンソール にログインします。
左側ナビゲーションウィンドウで、バケット をクリックします。バケットページで、バケットの作成 をクリックします。
「[バケットの作成]」パネルで、パラメーターを設定します。この例では、バケット名は
example-bucketで、中国 (杭州) リージョンに作成されます。構成の詳細については、「バケットの作成」をご参照ください。作成 をクリックします。
手順 2:部門 A へのアップロード権限の付与
example-bucket へのデータアップロードを部門 A のユーザーに許可するバケットポリシーを構成します。
手順 1 で作成したバケットの名前をクリックします。
左側ナビゲーションウィンドウで、権限コントロール > バケットポリシー を選択します。
GUI による追加 タブで、権限付与 をクリックします。
権限付与 パネルで、以下のパラメーターを構成し、その他の設定はすべてデフォルト値のままとします。
パラメーター 値 適用対象 バケット全体 許可されるユーザー RAM ユーザー を選択し、ドロップダウンリストから部門 A の RAM ユーザーを選択します。ユーザー名またはキーワードを入力して、あいまい一致で検索できます。 許可される操作 基本設定 を選択し、読み取り/書き込み をクリックします。これにより、バケットに対する読み取りおよび書き込みアクセスが付与されます。 OK をクリックします。
これで、部門 A のユーザーは example-bucket へデータをアップロードできるようになります。
手順 3:部門 B へのダウンロード専用権限の付与
部門 B のユーザーがデータをダウンロードできるが、書き込みおよび削除はできないようにする第 2 のバケットポリシーを構成します。
手順 1 で作成したバケットの名前をクリックします。
左側ナビゲーションウィンドウで、権限コントロール > バケットポリシー を選択します。
GUI による追加 タブで、権限付与 をクリックします。
権限付与 パネルで、以下のパラメーターを構成し、その他の設定はすべてデフォルト値のままとします。
パラメーター 値 適用対象 バケット全体 許可されるユーザー 他のアカウント を選択し、部門 B の RAM ユーザーの UID を入力します。 許可される操作 基本設定 を選択し、読み取り専用(ListObject を含む) をクリックします。これは「読み取り/書き込み」よりも制限が厳しく、許可されたユーザーはオブジェクトの表示、一覧表示、およびダウンロードが可能ですが、バケットへの書き込みおよび削除はできません。 OK をクリックします。
これで、部門 B のユーザーは example-bucket からデータをダウンロードできるようになりますが、オブジェクトのアップロードおよび削除はできません。
手順 4:バケットへのデータアップロード
部門 A の RAM ユーザーとして、OSS コンソール にログインします。
オブジェクトアップロードページを
https://oss.console.alibabacloud.com/bucket/hangzhou/example-bucket/object/uploadで開きます。「アップロード」ページで、[アップロード先] を [現在のディレクトリ] に設定し、残りのパラメーターを設定します。詳細については、「オブジェクトのアップロード」をご参照ください。
タスク一覧 パネルの アップロードタスク タブで、アップロードの進行状況をモニターします。アップロード完了後、パネルを閉じます。
手順 5:権限の検証
部門 B の RAM ユーザーとして、OSS コンソール にログインします。
オブジェクト ページを
https://oss.console.alibabacloud.com/bucket/hangzhou/example-bucket/objectで開きます。以下の 3 つのチェックを実行します。
チェック 1:ダウンロード権限(成功が想定)
example-bucket内のオブジェクトを検索し、[操作] 列で
> ダウンロード を選択します。オブジェクトが正常にダウンロードされた場合、ダウンロード権限が正しく構成されています。
ダウンロードが失敗した場合、ダウンロード権限の構成に誤りがあります。
チェック 2:アップロード権限(失敗が想定)
手順 4 に従って、
example-bucketへデータをアップロードします。アップロードが失敗した場合、アップロード制限が正しく構成されています。
アップロードが成功した場合、アップロード制限の構成に誤りがあります。
チェック 3:削除権限(失敗が想定)
example-bucket内のオブジェクトを検索し、[操作] 列で
> 削除 を選択します。削除が失敗した場合、削除制限が正しく構成されています。
削除が成功した場合、削除制限の構成に誤りがあります。