10.7. Multicloud Object Gateway のバケットポリシー
OpenShift Data Foundation は AWS S3 バケットポリシーをサポートします。バケットポリシーにより、ユーザーにバケットとそれらのオブジェクトのアクセスパーミッションを付与することができます。
10.7.1. バケットポリシーについて
バケットポリシーは、AWS S3 バケットおよびオブジェクトにパーミッションを付与するために利用できるアクセスポリシーオプションです。バケットポリシーは JSON ベースのアクセスポリシー言語を使用します。アクセスポリシー言語についての詳細は、AWS Access Policy Language Overview を参照してください。
10.7.2. バケットポリシーの使用
前提条件
- 実行中の OpenShift Data Foundation Platform。
- Multicloud Object Gateway (MCG) へのアクセス。「アプリケーションの使用による Multicloud Object Gateway へのアクセス」 を参照してください。
手順
MCG でバケットポリシーを使用するには、以下を実行します。
JSON 形式でバケットポリシーを作成します。以下の例を参照してください。
{ "Version": "NewVersion", "Statement": [ { "Sid": "Example", "Effect": "Allow", "Principal": [ "john.doe@example.com" ], "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::john_bucket" ] } ] }
アクセスパーミッションに関して、バケットポリシーには数多くの利用可能な要素があります。
これらの要素の詳細と、それらを使用してアクセスパーミッションを制御する方法の例は、AWS Access Policy Language Overview を参照してください。
バケットポリシーの他の例については、AWS Bucket Policy Examples を参照してください。
S3 ユーザーの作成方法については、「Multicloud Object Gateway での AWS S3 ユーザーの作成」 を参照してください。
AWS S3 クライアントを使用して
put-bucket-policy
コマンドを使用してバケットポリシーを S3 バケットに適用します。# aws --endpoint ENDPOINT --no-verify-ssl s3api put-bucket-policy --bucket MyBucket --policy BucketPolicy
-
ENDPOINT
を S3 エンドポイントに置き換えます。 -
MyBucket
を、ポリシーを設定するバケットに置き換えます。 -
BucketPolicy
をバケットポリシー JSON ファイルに置き換えます。 デフォルトの自己署名証明書を使用している場合は、
--no-verify-ssl
を追加します。以下に例を示します。
# aws --endpoint https://s3-openshift-storage.apps.gogo44.noobaa.org --no-verify-ssl s3api put-bucket-policy -bucket MyBucket --policy file://BucketPolicy
put-bucket-policy
コマンドについての詳細は、AWS CLI Command Reference for put-bucket-policy を参照してください。注記主となる要素では、リソース (バケットなど) へのアクセスを許可または拒否されるユーザーを指定します。現在、NooBaa アカウントのみがプリンシパルとして使用できます。Object Bucket Claim (オブジェクトバケット要求) の場合、NooBaa はアカウント
obc-account.<generated bucket name>@noobaa.io
を自動的に作成します。注記バケットポリシー条件はサポートされていません。
-
10.7.3. Multicloud Object Gateway での AWS S3 ユーザーの作成
前提条件
- 実行中の OpenShift Data Foundation Platform。
- Multicloud Object Gateway (MCG) へのアクセス。「アプリケーションの使用による Multicloud Object Gateway へのアクセス」 を参照してください。
手順
-
OpenShift Web コンソールで、Storage
Data Foundation をクリックします。 - Status カードで Storage System をクリックし、表示されるポップアップからストレージシステムリンクをクリックします。
- Object タブで、Multicloud Object Gateway リンクをクリックします。
Accounts タブで、Create Account をクリックします。
S3 Access Only を選択し、Account Name を指定します (例: john.doe@example.com)。Next をクリックします。
S3 default placement を選択します (例: noobaa-default-backing-store)。Buckets Permissions を選択します。特定のバケットまたはすべてのバケットを選択できます。Create をクリックします。