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

Virtual Private Cloud:VPC から Alibaba Cloud サービスへのプライベートアクセス

最終更新日:May 28, 2026

VPC から Object Storage Service (OSS) などの Alibaba Cloud サービスへ、インターネットを経由せずにプライベートネットワーク経由でアクセスできます。これにより、セキュリティ、ネットワークの安定性、コスト効率が向上します。

プライベートネットワークアクセスでは、すべてのリクエストが Alibaba Cloud の内部ネットワーク内に留まるため、より強固なセキュリティ、安定したパフォーマンス、低コストを実現できます。

ゲートウェイエンドポイントと PrivateLink の2つのソリューションが利用可能です。

仕組み

ゲートウェイエンドポイント

PrivateLink

ゲートウェイエンドポイントは、VPC が特定の Alibaba Cloud サービスにアクセスするための仮想ゲートウェイとして機能します。

以下の手順では、OSS を例として使用します。

  1. ゲートウェイエンドポイントを作成する際、VPC、ルートテーブル、アクセスする Alibaba Cloud サービスを選択します。

  2. ゲートウェイエンドポイントが作成されると、システムは選択したルートテーブルにカスタムルートエントリを追加します。宛先は、リージョン内の OSS の VIP CIDR ブロックを含むシステムプレフィックスリストで、ネクストホップはゲートウェイエンドポイントです。

  3. ルートテーブルに関連付けられた vSwitch 内の ECS インスタンスが OSS の内部ドメイン名にアクセスすると、VPC はリクエストをゲートウェイエンドポイントにルーティングします。その後、トラフィックはインターネットを経由せずに、プライベートネットワーク経由で OSS に到達します。

PrivateLink は、VPC とターゲットサービス間にプライベートトンネルを確立します。

以下の手順では、OSS を例として使用します。

  1. PrivateLink を使用するには、まずインターフェイスエンドポイントを作成します。VPC、セキュリティグループ、ゾーンと vSwitch、アクセスする Alibaba Cloud サービスを選択します。

  2. インターフェイスエンドポイントが作成されると、システムは選択した各 vSwitch 内にプライベート IP アドレスを持つエンドポイント Elastic Network Interface (ENI) を作成します。このエンドポイント ENI は、サービスにアクセスするための唯一のエントリポイントとして機能します。

  3. ECS インスタンスがエンドポイントドメイン名にアクセスし、トラフィックがセキュリティグループルールを通過すると、リクエストはエンドポイント ENI を経由してルーティングされ、インターネットを経由せずにプライベートネットワーク経由で OSS に到達します。

imageimage

以下の表は、2つのソリューションを比較したものです。

機能

ゲートウェイエンドポイント

PrivateLink

ユースケース

エンドポイントポリシーと OSS バケットポリシーを組み合わせて使用することで、不正アクセスのリスクを軽減し、双方向認証を実装します。

  • 送信元制御: VPC は指定されたバケットにのみアクセスできます。

  • 宛先制御: OSS バケットは指定された VPC からのみアクセスできます。

VPC から Alibaba Cloud サービスへのプライベートアクセスの標準ソリューションです。ゲートウェイエンドポイントよりも多くのサービスタイプと高度な機能をサポートします。

サポートされるサービスタイプ

現在、OSS のみをサポートします。

多数の Alibaba Cloud サービスと、ISV が提供するサービスを含むユーザー作成サービスをサポートします。

VPCセキュリティ機能

エンドポイントポリシーのみをサポートします。

セキュリティグループ、ネットワーク ACL、エンドポイントポリシーをサポートします。

ネットワーキング機能

複雑なネットワーキングをサポートしません。Alibaba Cloud サービスの CIDR ブロック (100.x.x.x/8) と競合する可能性があります。

複雑なネットワーキングをサポートします。VPC ピアリング、CEN、Express Connect、VPN ゲートウェイと互換性があり、リージョン間およびハイブリッドクラウド接続を実現します。

運用管理機能

なし

監査とトラブルシューティングのためのフローログをサポートします。

料金

無料です。

料金には、インスタンス料金とデータ転送料金が含まれます。

ユーザー作成サービスの場合、コンシューマーまたはプロバイダーのどちらが支払うかを選択できます。

ゲートウェイエンドポイント

エンドポイントポリシーと OSS バケットポリシーを組み合わせて使用することで、不正アクセスのリスクを軽減し、双方向認証を実装します。

  • 送信元制御: VPC は指定されたバケットにのみアクセスできます。

  • 宛先制御: OSS バケットは指定された VPC からのみアクセスできます。

image

コンソール

ゲートウェイエンドポイントの作成とポリシーの設定

ゲートウェイエンドポイントの VPC、承認済みバケット、アクセス元のユーザーは、それぞれ異なる Alibaba Cloud アカウントのものであっても構いません。

ゲートウェイエンドポイントは、一部のリージョンでのみサポートされています。

  1. ゲートウェイエンドポイントを作成し、エンドポイントポリシーを設定します。

    1. VPC コンソール - ゲートウェイエンドポイントページに移動して、エンドポイントの作成 をクリックします。

    2. リージョンを選択し、エンドポイントの名前を指定します。エンドポイントタイプはゲートウェイのままにします。

    3. エンドポイントサービス には、Alibaba Cloud サービス を選択し、次に Object Storage Service (OSS) のエンドポイントサービスを選択します。

    4. VPC を選択し、ルートテーブルを選択します。

      ゲートウェイエンドポイントが作成されると、システムは選択したルートテーブルにカスタムルートエントリを追加します。宛先は、リージョン内の OSS の VIP CIDR ブロックを含むシステムプレフィックスリストで、ネクストホップはゲートウェイエンドポイントです。

    5. エンドポイントポリシーを設定します。構文は、Resource Access Management (RAM) の権限ポリシー言語と同じです。

      ポリシーの例

      以下の例では、アカウント ID 1746xxxxxx を持つユーザーのみが、examplebucket という名前のバケットに対して OSS 関連の操作を実行できるようにします。

      {
        "Version": "1",
        "Statement":
          [
            {
              "Effect": "Allow",
              "Action": "oss:*",
              "Resource": ["acs:oss:*:*:examplebucket",
                           "acs:oss:*:*:examplebucket/*"],
              "Principal": ["1746xxxxxx"]
            }
          ]
      }
    6. エンドポイントが作成されると、関連付けられたルートテーブルのカスタムルートエントリに、システムによって追加されたルートエントリが表示されます。ネクストホップはゲートウェイエンドポイントです。

  2. OSS のバケットポリシーを設定します。

    1. OSS コンソール - バケットページに移動して、承認するバケットの名前をクリックします。

    2. 左側メニューで、[権限制御] > [バケットポリシー] を選択します。[構文による追加] をクリックし、次に [編集] をクリックします。

    3. バケットポリシーを設定します。構文は、Resource Access Management (RAM) の権限ポリシー言語と同じです。

      ポリシーの例

      以下はポリシーのサンプルです。

      1. ポリシー1: vpc-bp****** を除くすべての VPC から、すべてのアカウントが examplebucket バケットに対して OSS 関連の操作を実行することを拒否します。

        Deny ポリシーで Action を * に設定することは推奨しません。これにより、バケット所有者でさえ OSS コンソールでバケットにアクセスできなくなります。OSS アクションは、RAM ポリシーの概要に記載されています。
      2. ポリシー2: アカウント ID 1746xxxxxx を持つユーザーのみが、VPC ID vpc-bp****** を持つ VPC から examplebucket バケットに対して OSS 関連の操作を実行できるようにします。

      {
        "Version": "1",
        "Statement":
          [
            {
              "Effect": "Deny",
              "Action": ["oss:ListObjects","oss:GetObject","oss:PutObject","oss:DeleteObject"],
              "Resource": ["acs:oss:*:*:examplebucket",
                           "acs:oss:*:*:examplebucket/*"],
              "Principal": ["*"],
      	"Condition": {
      	  "StringNotEquals": {
                  "acs:SourceVpc": [
      	      "vpc-bp******"
      	    ]
      	  }
      	}
            },{
              "Effect": "Allow",
              "Action": ["oss:*"],
              "Resource": ["acs:oss:*:*:examplebucket",
                           "acs:oss:*:*:examplebucket/*"],
              "Principal": ["1746xxxxxx"],
      	"Condition": {
      	  "StringEquals": {
                  "acs:SourceVpc": [
      	      "vpc-bp******"
      	    ]
      	  }
      	}
            }
          ]
      }
    4. ポリシーを設定したら、[保存] をクリックします。

  3. アクセスポリシーを検証します。

    注意: RAM ユーザーは、関連する OSS バケットに対する権限が必要です。そうでない場合、アクセスが失敗する可能性があります。
    1. 承認済みアカウントから、承認済み VPC 内の承認済みバケットへのアクセスは成功します。

    2. アカウント、VPC、またはバケットが承認されていない場合、アクセスは失敗します。

承認ポリシーの変更

承認ポリシーを変更して、許可する VPC、バケット、またはアカウントを調整します。

  • 承認する VPC を調整するには: OSS コンソール - バケットページに移動して対象のバケットの名前をクリックし、左側メニューで [権限制御] > [バケットポリシー] を選択します。既存のポリシーの Condition フィールドを変更して、バケットにアクセスできる VPC を追加または削除します。

  • 承認するバケットを調整するには:

    1. VPC コンソール - ゲートウェイエンドポイント ページに移動し、対象のゲートウェイエンドポイントインスタンスの ID をクリックして、アクセスポリシー タブを選択します。 既存のポリシーの Resource フィールドを変更して、VPC がアクセスできるバケットを追加または削除します。

    2. OSS コンソール - バケットページに移動して対象のバケットの名前をクリックし、左側メニューで [権限制御] > [バケットポリシー] を選択します。既存のポリシーの Resource フィールドを変更して、アクセス可能なバケットリソースを追加または削除します。複数のバケットが関係する場合は、各バケットに対してこの操作を実行する必要があります。

  • 承認するアカウントを調整するには:

    注意: RAM ユーザーは、関連する OSS バケットに対する権限が必要です。そうでない場合、アクセスが失敗する可能性があります。
    1. VPC コンソール - ゲートウェイエンドポイント ページに移動し、ターゲットゲートウェイエンドポイントインスタンスの ID をクリックして、アクセスポリシー タブを選択します。既存のポリシーの Principal フィールドを変更して、VPC 内のバケットにアクセスできるアカウントを追加または削除します。

    2. OSS コンソール - バケットページに移動して対象のバケットの名前をクリックし、左側メニューで [権限制御] > [バケットポリシー] を選択します。既存のポリシーの Principal フィールドを変更して、VPC 内のバケットにアクセスできるアカウントを追加または削除します。複数のバケットが関係する場合は、各バケットに対してこの操作を実行する必要があります。

ルートテーブルの関連付けまたは関連付け解除

ルートテーブルの関連付けや関連付けの解除によって、ゲートウェイエンドポイントを通じて Alibaba Cloud サービスにアクセスできる vSwitch を制御します。

  1. VPC コンソール - ゲートウェイエンドポイントページに移動して、対象のゲートウェイエンドポイントインスタンスの ID をクリックします。

  2. 関連付けられたルートテーブル タブでは、

    1. 新しいルートテーブルを関連付けるには、ルートテーブル をクリックします。関連付けが完了すると、関連付けられたルートテーブルのカスタムルートエントリで、ネクストホップがゲートウェイエンドポイントを指す、システムによって追加されたルートエントリを確認できます。

    2. 既存のルートテーブルの関連付けを解除するには、対象のルートテーブルの横にある関連付けの解除 をクリックします。関連付けを解除すると、システムによって追加されたルートエントリは自動的に削除されます。

ゲートウェイエンドポイントの削除

ゲートウェイエンドポイントを削除するには、まず関連付けられたすべてのルートテーブルの関連付けを解除する必要があります。

  1. 関連付けられたすべてのルートテーブルの関連付けを解除します。

  2. VPC コンソール - ゲートウェイエンドポイント ページに移動し、対象のゲートウェイエンドポイントインスタンスの右側にある 削除 をクリックします。

  3. (オプション) バケットポリシーは有効なままであるため、他の VPC はバケットへのアクセスが引き続き制限されます。調整するには、OSS コンソール - バケットページに移動して対象のバケットをクリックし、[権限制御] > [バケットポリシー] を選択します。指定された VPC からのアクセスのみを許可するポリシーを調整または削除します。

API

  1. ゲートウェイエンドポイント:

    1. ゲートウェイエンドポイントを作成してエンドポイントポリシーを設定するには、CreateVpcGatewayEndpoint API を呼び出します。

      1. この API を呼び出す際は、ServiceName パラメータを指定する必要があります。ListVpcEndpointServicesByEndUser API を呼び出して、利用可能なエンドポイントサービスを照会できます。

      2. PolicyDocument パラメータは、エンドポイントポリシーを設定するために使用されます。構文は、Resource Access Management (RAM) の権限ポリシー言語と同じです。

    2. ゲートウェイエンドポイントポリシーを変更するには: UpdateVpcGatewayEndpointAttribute API を呼び出し、PolicyDocument パラメータを指定します。

    3. ルートテーブルを関連付けるには: AssociateRouteTablesWithVpcGatewayEndpoint API を呼び出します。

    4. ルートテーブルの関連付けを解除するには: DissociateRouteTablesFromVpcGatewayEndpoint API を呼び出します。

    5. ゲートウェイエンドポイントを削除するには: DeleteVpcGatewayEndpoint API を呼び出します。

  2. OSS バケット:

    1. OSS のバケットポリシーを設定するには: PutBucketPolicy API を呼び出します。

    2. バケットポリシーを変更するには: PutBucketPolicy API を呼び出し、JSON 形式で権限ポリシーを指定します。

    3. バケットポリシーを削除するには: DeleteBucketPolicy API を呼び出します。

Terraform

ゲートウェイエンドポイントを設定します。

リソース: alicloud_vpc_gateway_endpoint
注意: ゲートウェイエンドポイントを削除するには、まず関連付けられたすべてのルートテーブルの関連付けを解除する必要があります。
provider "alicloud" {
  region = "cn-hangzhou"
}

resource "alicloud_vpc_gateway_endpoint" "default" {
  gateway_endpoint_name = "gateway-endpoint-name"        # ゲートウェイエンドポイントの名前。
  service_name          = "com.aliyun.cn-hangzhou.oss"   # OSS サービスの名前。
  vpc_id                = "vpc-bp******"                 # ゲートウェイエンドポイントが属する VPC の ID。
  route_tables = ["vtb-bp******","vtb-bp******"]         # 関連付けられたルートテーブルの ID。
  # エンドポイントポリシー。
  policy_document       = <<EOF
   {
    "Version": "1",
    "Statement":
     [
       {
        "Effect": "Allow",
        "Action": "oss:*",
        "Resource": ["acs:oss:*:*:examplebucket","acs:oss:*:*:examplebucket/*"],
        "Principal": ["1746xxxxxx"]
      }
    ]
  }
  EOF                                              
}

OSS のバケットポリシーを設定します。

リソース: alicloud_oss_bucket_policy
provider "alicloud" {
  region = "cn-hangzhou"
}

resource "alicloud_oss_bucket_policy" "default" {
  bucket = "examplebucket"  # バケットの名前。
  
  policy = jsonencode({
    Version = "1"
    Statement = [
      {
        Effect = "Deny"
        Action = [
          "oss:ListObjects",
          "oss:GetObject",
          "oss:PutObject",
          "oss:DeleteObject"
        ]
        Principal = [
          "*"
        ]
        Resource = [
          "acs:oss:*:*:examplebucket",
          "acs:oss:*:*:examplebucket/*"
        ]
        Condition = {
          StringNotEquals = {
            "acs:SourceVpc" = [
              "vpc-bp******"  # 実際の VPC ID に置き換えてください。
            ]
          }
        }
      },{
        Effect = "Allow"
        Action = [
          "oss:*"
        ]
        Principal = [
          "1746xxxxxx"  # 実際のアカウント ID に置き換えてください。
        ]
        Resource = [
          "acs:oss:*:*:examplebucket",
          "acs:oss:*:*:examplebucket/*"
        ]
        Condition = {
          StringEquals = {
            "acs:SourceVpc" = [
              "vpc-bp******"  # 実際の VPC ID に置き換えてください。
            ]
          }
        }
      }
    ]
  })
} 

PrivateLink

以下のガイドでは、一般的な PrivateLink のシナリオについて説明します。

詳細情報

課金

ゲートウェイエンドポイントは無料です。

PrivateLink の料金: PrivateLink の料金

サポート対象リージョン

エリア

リージョン

アジアパシフィック - 中国

China (Hangzhou)China (Shanghai)China (Qingdao)China (Beijing)China (Zhangjiakou)China (Hohhot)China (Shenzhen)China (Ulanqab)China (Heyuan)China (Guangzhou)China (Chengdu)、および China (Hong Kong)

その他のアジアパシフィック

Japan (Tokyo)SingaporeMalaysia (Kuala Lumpur)、および Indonesia (Jakarta)

ヨーロッパとアメリカ

Germany (Frankfurt)UK (London)US (Silicon Valley)、および US (Virginia)

中東

UAE (Dubai)

PrivateLink がサポートされるリージョンとゾーン: PrivateLink をサポートするリージョンとゾーン

クォータ

ゲートウェイエンドポイントのクォータ:

  1. 1つの VPC は、Alibaba Cloud サービスごとに1つのゲートウェイエンドポイントにのみ関連付けることができ、1つのルートテーブルは1つのゲートウェイエンドポイントにのみ関連付けることができます。

  2. 1つのゲートウェイエンドポイントは、複数の VPC ルートテーブルに関連付けることができます。

PrivateLink のクォータ: サービスクォータ