バケットは、データ用のコンテナーを提供する論理的な概念です。 Cloud Object Storage のバケットは、IBM Cloud 内で作成されます。 Cloud Object Storage インスタンス内では、ポリシーを使用してユーザーのバケットへのアクセスを制限できます。
以下のように機能します。
この図で、2 つの資格情報が Cloud Object Storage インスタンスに関連付けられています。 各資格情報は、IAM サービス ID を参照します。IAM サービス ID では、サービス ID がアクセスできるバケットを制御するためのポリシーが定義されています。 Cloud Object Storage 接続をプロジェクトに追加する際に特定の資格情報を使用することで、その資格情報に関連付けられたサービス ID がアクセスできるバケットのみが表示されます。
バケットへのユーザーのアクセスを制限する接続を作成するには、以下のステップを従ってください。
最初に、IBM Cloud で以下を行います。
-
次に、プロジェクトで以下のようにします。
ステップ 1: Cloud Object Storage インスタンスといくつかのバケットを作成する
IBM Cloud カタログから、 Object Storageを検索してから Cloud Object Storage インスタンスを作成します。
ナビゲーション・ペインで Buckets を選択します。
必要な数のバケットを作成します。
例えば、3 つのバケット dept1-bucket、dept2-bucket、および dept3-bucket を作成します。
ステップ 2: ユーザーがアクセスできるようにするバケットの組み合わせごとに、サービス資格情報とサービス ID を作成する
ナビゲーション・ペインでサービス資格情報を選択します。
「新規資格情報」をクリックします。
「新規資格情報の追加」ダイアログで、資格情報の名前を指定し、適切なアクセス役割を選択します。
Select Service ID フィールド内で、 Create New Service IDをクリックします。
新規サービス ID の名前を入力します。 識別しやすいように、資格情報と同じまたは類似した名前を使用することをお勧めします。
追加 をクリックします。
作成する資格情報ごとにステップ 2 から 6 を繰り返します。
例えば、3 つの資格情報 cos-all-access、dept1-dept2-buckets-only、および dept2-dept3-buckets-only を作成します。
ステップ 3: サービス ID が作成されていることを確認する
IBM Cloud ページ・ヘッダーで、 「管理」>「アクセス (IAM)」をクリックします。
ナビゲーション・ペインで Service IDs を選択します。
ステップ 2d および 2e で作成したサービス ID が表示されていることを確認します。
ステップ 4: 各サービス ID のポリシーを編集し、該当するバケットへのアクセス権限を付与する
各サービス ID を順に開きます。
「アクセス・ポリシー」タブで、「アクション」メニューから Edit を選択して、ポリシーを表示します。
必要に応じて、該当するバケットへのアクセス権限を付与するようにポリシーを編集します。
必要な場合は、1 つ以上の新規ポリシーを作成します。
既存のデフォルト・ポリシーを削除します。デフォルト・ポリシーは、Cloud Object Storage インスタンス内のすべてのバケットへのアクセス権限を付与します。
「アクセス権限の割り当て」 をクリックします。
リソース・タイプには、「bucket」を指定します。
リソース IDには、バケット名を指定します。
「役割の選択」セクションで、「プラットフォーム・アクセス役割の割り当て」リストから Viewer を選択し、「サービス・アクセス役割の割り当て」リストから Writer を選択します。
例 1
デフォルトでは、cos-all-access サービス ID のポリシーは、Cloud Object Storage インスタンスへの「ライター」アクセス権限を付与します。
このサービス ID および対応する資格情報は、ユーザーにすべてのバケットへのアクセス権限を付与することを目的としているため、編集は不要です。
例 2
デフォルトでは、「dept1-dept2-buckets-only」サービス ID のポリシーは、 Cloud Object Storage インスタンスへの Writer アクセスを提供します。 このサービス ID および対応する資格情報は、ユーザーに dept1-bucket バケットと dept2-bucket バケットのみへのアクセス権限を付与することを目的としているため、デフォルト・ポリシーを削除して、2 つのアクセス・ポリシー (dept1-bucket 用に 1 つと dept2-bucket 用に 1 つ) を作成します。
ステップ 5: 作成した各サービス資格情報から値をコピーする
IBM Cloud ダッシュボードに戻り、 Storage リストから Cloud Object Storage を選択します。
ナビゲーション・ペインでサービス資格情報を選択します。
ステップ 2 で作成したサービス ID の 1 つに対して View credentials アクションをクリックします。
「apikey」値と「resource_instance_id」値を一時的な場所 (デスクトップ・ノートなど) にコピーします。
各資格情報について、ステップ 3 および 4 を繰り返します。
ステップ 6: エンドポイントをコピーする
ナビゲーション・ペインで Endpoint を選択します。
接続するエンドポイントの URL をコピーします。 値をデスクトップ・ノートなどの一時ロケーションにコピーします。
ステップ 7: 作成したサービス資格情報を使用する Cloud Object Storage 接続を追加する
「資産」 タブでプロジェクトに戻り、 「新規資産」>「データ・ソースへの接続」をクリックします。 または、カタログから 「プロジェクトに追加」>「接続」をクリックします。
「新規接続」ページで、 Cloud Object Storageをクリックします。
新規接続に名前を付け、ログイン URL (「エンドポイント」ページから) と、サービス資格情報の 1 つからのステップ 5 でコピーした「apikey」および「resource_instance_id」の値を入力します。
各サービス資格情報について、ステップ 3 から 5 を繰り返します。
プロジェクトの「データ資産」セクションに接続が表示されます。
バケットへのユーザー・アクセスをテストする
今後は、 Cloud Object Storage 接続からプロジェクトにデータ資産を追加すると、ポリシーによってアクセスが許可されているバケットのみが表示されます。 これをテストするには、以下のようにします。
プロジェクトから、 「資産のインポート」>「接続済みデータ」をクリックします。 または、カタログから 「カタログに追加」>「接続済み資産」をクリックします。
「接続ソース」セクションで、 Select sourceをクリックします。
「接続ソースの選択 (Select connection source)」ページで、作成した Cloud Object Storage 接続を確認できます。
Cloud Object Storage 接続の 1 つを選択して、そのバケットの資格情報に関連付けられたサービス ID にアクセス可能なバケットのみが表示されることを確認できます。