すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:VPCポリシーとバケットポリシーを使用したデータアクセスの制御

最終更新日:Oct 22, 2024

仮想プライベートクラウド (VPC) ポリシーを設定して、許可されたユーザーがアクセスできるリソースを指定し、バケットポリシーを設定して、リソースにアクセスできるユーザーを指定できます。 このようにして、クラウド内のデータは、安全なネットワーク内の許可されたユーザーがアクセスでき、不正アクセスから保護されます。

前提条件

VPCは、バケットと同じリージョンに作成されます。 詳細については、「VPC の作成と管理」をご参照ください。

背景情報

次の図は、ソースからデスティネーションへのデータアクセスを制御するために使用されるアーキテクチャを示しています。

safety

上記のアーキテクチャに基づいて、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ポリシーを設定します。

  1. VPCコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、エンドポイントをクリックします。

  3. 上部のナビゲーションバーで、ゲートウェイエンドポイントを作成するリージョンを選択します。

  4. [エンドポイント] ページの [インターフェイスエンドポイント] タブで、エンドポイントの作成 をクリックします。 をクリックします。

  5. エンドポイントの作成 ページで、パラメーターを設定し、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リソースにアクセスしないようにします。

  1. OSSコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、examplebucketを見つけてクリックします。

  3. 左側のナビゲーションツリーで、権限管理 > バケット承認ポリシー を選択します。

  4. バケット承認ポリシー ページで、構文で追加 をクリックします。 をクリックします。

  5. [編集] をクリックし、次のバケットポリシーを入力します。

    {
      "Statement" :
        [
          {
            "Action": ["oss:*"],
            "Effect": "Deny",
            "Principal": ["*"],
            "Resource": "acs:oss:*:*:*",
            "Condition":
              {
                "StringNotEquals" :
                  {
                    "acs:SourceVpc": ["t4nlw426y44rd3iq4xxxx"]
                  }
              }
          }
        ] ,
      "Version": "1"
    }
    重要

    バケットポリシーに基づいてリソースへのアクセスが拒否された場合、OSSはリクエストを拒否します。 リソースへのアクセスが拒否されない場合、OSSは、RAMポリシーなどの他の複数の条件に基づいて、リクエストを許可するか拒否するかを決定します。 詳細は、RAM権限付与を参照してください。

  6. 設定 をクリックします。 表示されるダイアログボックスで、[OK] をクリックします。