仮想プライベートクラウド (VPC) ポリシーを設定して、許可されたユーザーがアクセスできるリソースを指定し、バケットポリシーを設定して、リソースにアクセスできるユーザーを指定できます。 このようにして、クラウド内のデータは、安全なネットワーク内の許可されたユーザーがアクセスでき、不正アクセスから保護されます。
前提条件
VPCは、バケットと同じリージョンに作成されます。 詳細については、「VPC の作成と管理」をご参照ください。
背景情報
次の図は、ソースからデスティネーションへのデータアクセスを制御するために使用されるアーキテクチャを示しています。
上記のアーキテクチャに基づいて、Object Storage Service (OSS) は、次のルールに基づいて、ユーザーがリソースにアクセスできるようにするかどうかを決定します。
リソースへのアクセスを許可する
許可されたバケット内のリソースへのアクセスは、許可されたVPCから許可されたユーザーのAccessKeyペアを使用して開始されると許可されます。
リソースへのアクセスを拒否する
権限のないバケット内のリソースへのアクセスは、権限のないユーザーのAccessKeyペアを使用して権限のあるVPCから開始された場合、拒否されます。
許可されたバケット内のリソースへのアクセスは、許可されたユーザーのAccessKeyペアを使用して許可されていないVPCから開始されると拒否されます。
シナリオ
UIDが174649585760xxxx
のユーザーは、重要なビジネスデータを保存するために、OSSにexamplebucketという名前のバケットを作成します。 また、複数のECS (Elastic Compute Service) インスタンスを購入し、IDがt4nlw426y44rd3iq4xxxx
のVPCにデプロイします。
ソースからのデータアクセスを制御するには、現在のVPCから開始されたリクエストのみがexamplebucketの特定のOSSリソースにアクセスできるようにVPCポリシーを設定します。 宛先へのデータアクセスを制御するには、他のVPCからexamplebucketへのすべてのアクセス要求をブロックするようにバケットポリシーを設定する必要もあります。
ステップ1: VPCポリシーの設定
IDがt4nlw426y44rd3iq4xxxx
のVPCから開始されたリクエストがexamplebucketのOSSリソースにのみアクセスできるように、VPCポリシーを設定します。
VPCコンソールにログインします。
左側のナビゲーションウィンドウで、エンドポイントをクリックします。
上部のナビゲーションバーで、ゲートウェイエンドポイントを作成するリージョンを選択します。
[エンドポイント] ページの [インターフェイスエンドポイント] タブで、エンドポイントの作成 をクリックします。 をクリックします。
エンドポイントの作成 ページで、パラメーターを設定し、OK をクリックします。 下表にパラメーターを示します。
パラメーター
説明
エンドポイント名
ゲートウェイエンドポイントの名前を入力します。
エンドポイントタイプ
作成するエンドポイントのタイプを選択します。 この例では、ゲートウェイエンドポイントが選択されています。
エンドポイントサービス
サービスの選択 をクリックし、VPCにアクセスするエンドポイントサービスを選択します。
[VPC]
ゲートウェイエンドポイントを作成するVPCを選択します。
ルートテーブル
ゲートウェイエンドポイントに関連付けるルートテーブルを選択します。
リソースグループ
ゲートウェイエンドポイントに関連付けるリソースグループを選択します。
説明
エンドポイントの説明を入力します。
アクセスポリシー
次のアクセスポリシーを入力します。
{ "Statement": [ { "Action": "oss:*", "Effect": "Allow", "Principal": ["174649585760xxxx"], "Resource": ["acs:oss:*:*:examplebucket", "acs:oss:*:*:examplebucket/*"] } ], "Version": "1" }
重要デフォルトでは、VPCポリシーが設定されていない場合、OSSリソースと同じリージョンにあるVPCから開始されたリクエストは許可されます。 VPCポリシーが設定されている場合、OSSリソースと同じリージョンにあるVPCから開始されたリクエストは、認証結果が許可の場合にのみ許可されます。
手順2: バケットポリシーの設定
バケットポリシーを設定して、IDがt4nlw426y44rd3iq4xxxx
以外のVPCから開始されたリクエストがOSSリソースにアクセスしないようにします。
OSSコンソールにログインします。
左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、examplebucketを見つけてクリックします。
左側のナビゲーションツリーで、権限管理 > バケット承認ポリシー を選択します。
バケット承認ポリシー ページで、構文で追加 をクリックします。 をクリックします。
[編集] をクリックし、次のバケットポリシーを入力します。
{ "Statement" : [ { "Action": ["oss:*"], "Effect": "Deny", "Principal": ["*"], "Resource": "acs:oss:*:*:*", "Condition": { "StringNotEquals" : { "acs:SourceVpc": ["t4nlw426y44rd3iq4xxxx"] } } } ] , "Version": "1" }
重要バケットポリシーに基づいてリソースへのアクセスが拒否された場合、OSSはリクエストを拒否します。 リソースへのアクセスが拒否されない場合、OSSは、RAMポリシーなどの他の複数の条件に基づいて、リクエストを許可するか拒否するかを決定します。 詳細は、RAM権限付与を参照してください。
設定 をクリックします。 表示されるダイアログボックスで、[OK] をクリックします。