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

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

最終更新日:Jun 13, 2025

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

前提条件

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

背景情報

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

safety

上記のアーキテクチャに基づいて、Object Storage Service(OSS)は、次のルールに基づいてユーザーがリソースにアクセスできるかどうかを判断します。

  • リソースへのアクセスを許可する

    承認されたユーザーの AccessKey ペアを使用して、承認された VPC から開始された場合、承認されたバケット内のリソースへのアクセスが許可されます。

  • リソースへのアクセスを拒否する

    • 承認されていないユーザーの AccessKey ペアを使用して、承認された VPC から開始された場合、承認されていないバケット内のリソースへのアクセスは拒否されます。

    • 承認されたユーザーの AccessKey ペアを使用して、承認されていない VPC から開始された場合、承認されたバケット内のリソースへのアクセスは拒否されます。

シナリオ

UID が 174649585760xxxx のユーザーが、重要なビジネスデータを保存するために OSS に examplebucket という名前のバケットを作成します。 また、ユーザーは複数の Elastic Compute Service(ECS)インスタンスを購入し、これらのインスタンスを 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": ["vpc-t4nlw426y44rd3iq4xxxx"]
                  }
              }
          }
        ] ,
      "Version": "1"
    }
    重要

    バケットポリシーに基づいてリソースへのアクセスが拒否された場合、OSS はリクエストを拒否します。 リソースへのアクセスが拒否されない場合、OSS は RAM ポリシーなど、他の複数の条件に基づいてリクエストを許可するか拒否するかを判断します。 詳細については、「認証」をご参照ください。

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