VPC から Object Storage Service (OSS) などの Alibaba Cloud サービスへ、インターネットを経由せずにプライベートネットワーク経由でアクセスできます。これにより、セキュリティ、ネットワークの安定性、コスト効率が向上します。
プライベートネットワークアクセスでは、すべてのリクエストが Alibaba Cloud の内部ネットワーク内に留まるため、より強固なセキュリティ、安定したパフォーマンス、低コストを実現できます。
ゲートウェイエンドポイントと PrivateLink の2つのソリューションが利用可能です。
仕組み
ゲートウェイエンドポイント | PrivateLink |
ゲートウェイエンドポイントは、VPC が特定の Alibaba Cloud サービスにアクセスするための仮想ゲートウェイとして機能します。 以下の手順では、OSS を例として使用します。
| PrivateLink は、VPC とターゲットサービス間にプライベートトンネルを確立します。 以下の手順では、OSS を例として使用します。
|
以下の表は、2つのソリューションを比較したものです。
機能 | ゲートウェイエンドポイント | PrivateLink |
ユースケース | エンドポイントポリシーと OSS バケットポリシーを組み合わせて使用することで、不正アクセスのリスクを軽減し、双方向認証を実装します。
| 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 からのみアクセスできます。
コンソール
ゲートウェイエンドポイントの作成とポリシーの設定
ゲートウェイエンドポイントの VPC、承認済みバケット、アクセス元のユーザーは、それぞれ異なる Alibaba Cloud アカウントのものであっても構いません。
ゲートウェイエンドポイントは、一部のリージョンでのみサポートされています。
ゲートウェイエンドポイントを作成し、エンドポイントポリシーを設定します。
VPC コンソール - ゲートウェイエンドポイントページに移動して、エンドポイントの作成 をクリックします。
リージョンを選択し、エンドポイントの名前を指定します。エンドポイントタイプはゲートウェイのままにします。
エンドポイントサービス には、Alibaba Cloud サービス を選択し、次に Object Storage Service (OSS) のエンドポイントサービスを選択します。
VPC を選択し、ルートテーブルを選択します。
ゲートウェイエンドポイントが作成されると、システムは選択したルートテーブルにカスタムルートエントリを追加します。宛先は、リージョン内の OSS の VIP CIDR ブロックを含むシステムプレフィックスリストで、ネクストホップはゲートウェイエンドポイントです。
エンドポイントポリシーを設定します。構文は、Resource Access Management (RAM) の権限ポリシー言語と同じです。
エンドポイントが作成されると、関連付けられたルートテーブルのカスタムルートエントリに、システムによって追加されたルートエントリが表示されます。ネクストホップはゲートウェイエンドポイントです。
OSS のバケットポリシーを設定します。
OSS コンソール - バケットページに移動して、承認するバケットの名前をクリックします。
左側メニューで、[権限制御] > [バケットポリシー] を選択します。[構文による追加] をクリックし、次に [編集] をクリックします。
バケットポリシーを設定します。構文は、Resource Access Management (RAM) の権限ポリシー言語と同じです。
ポリシーを設定したら、[保存] をクリックします。
アクセスポリシーを検証します。
注意: RAM ユーザーは、関連する OSS バケットに対する権限が必要です。そうでない場合、アクセスが失敗する可能性があります。
承認済みアカウントから、承認済み VPC 内の承認済みバケットへのアクセスは成功します。
アカウント、VPC、またはバケットが承認されていない場合、アクセスは失敗します。
承認ポリシーの変更
承認ポリシーを変更して、許可する VPC、バケット、またはアカウントを調整します。
承認する VPC を調整するには: OSS コンソール - バケットページに移動して対象のバケットの名前をクリックし、左側メニューで [権限制御] > [バケットポリシー] を選択します。既存のポリシーの
Conditionフィールドを変更して、バケットにアクセスできる VPC を追加または削除します。承認するバケットを調整するには:
VPC コンソール - ゲートウェイエンドポイント ページに移動し、対象のゲートウェイエンドポイントインスタンスの ID をクリックして、アクセスポリシー タブを選択します。 既存のポリシーの
Resourceフィールドを変更して、VPC がアクセスできるバケットを追加または削除します。OSS コンソール - バケットページに移動して対象のバケットの名前をクリックし、左側メニューで [権限制御] > [バケットポリシー] を選択します。既存のポリシーの
Resourceフィールドを変更して、アクセス可能なバケットリソースを追加または削除します。複数のバケットが関係する場合は、各バケットに対してこの操作を実行する必要があります。
承認するアカウントを調整するには:
注意: RAM ユーザーは、関連する OSS バケットに対する権限が必要です。そうでない場合、アクセスが失敗する可能性があります。
VPC コンソール - ゲートウェイエンドポイント ページに移動し、ターゲットゲートウェイエンドポイントインスタンスの ID をクリックして、アクセスポリシー タブを選択します。既存のポリシーの
Principalフィールドを変更して、VPC 内のバケットにアクセスできるアカウントを追加または削除します。OSS コンソール - バケットページに移動して対象のバケットの名前をクリックし、左側メニューで [権限制御] > [バケットポリシー] を選択します。既存のポリシーの
Principalフィールドを変更して、VPC 内のバケットにアクセスできるアカウントを追加または削除します。複数のバケットが関係する場合は、各バケットに対してこの操作を実行する必要があります。
ルートテーブルの関連付けまたは関連付け解除
ルートテーブルの関連付けや関連付けの解除によって、ゲートウェイエンドポイントを通じて Alibaba Cloud サービスにアクセスできる vSwitch を制御します。
VPC コンソール - ゲートウェイエンドポイントページに移動して、対象のゲートウェイエンドポイントインスタンスの ID をクリックします。
関連付けられたルートテーブル タブでは、
新しいルートテーブルを関連付けるには、ルートテーブル をクリックします。関連付けが完了すると、関連付けられたルートテーブルのカスタムルートエントリで、ネクストホップがゲートウェイエンドポイントを指す、システムによって追加されたルートエントリを確認できます。
既存のルートテーブルの関連付けを解除するには、対象のルートテーブルの横にある関連付けの解除 をクリックします。関連付けを解除すると、システムによって追加されたルートエントリは自動的に削除されます。
ゲートウェイエンドポイントの削除
ゲートウェイエンドポイントを削除するには、まず関連付けられたすべてのルートテーブルの関連付けを解除する必要があります。
関連付けられたすべてのルートテーブルの関連付けを解除します。
VPC コンソール - ゲートウェイエンドポイント ページに移動し、対象のゲートウェイエンドポイントインスタンスの右側にある 削除 をクリックします。
(オプション) バケットポリシーは有効なままであるため、他の VPC はバケットへのアクセスが引き続き制限されます。調整するには、OSS コンソール - バケットページに移動して対象のバケットをクリックし、[権限制御] > [バケットポリシー] を選択します。指定された VPC からのアクセスのみを許可するポリシーを調整または削除します。
API
ゲートウェイエンドポイント:
ゲートウェイエンドポイントを作成してエンドポイントポリシーを設定するには、CreateVpcGatewayEndpoint API を呼び出します。
この API を呼び出す際は、
ServiceNameパラメータを指定する必要があります。ListVpcEndpointServicesByEndUser API を呼び出して、利用可能なエンドポイントサービスを照会できます。PolicyDocumentパラメータは、エンドポイントポリシーを設定するために使用されます。構文は、Resource Access Management (RAM) の権限ポリシー言語と同じです。
ゲートウェイエンドポイントポリシーを変更するには: UpdateVpcGatewayEndpointAttribute API を呼び出し、
PolicyDocumentパラメータを指定します。ルートテーブルを関連付けるには: AssociateRouteTablesWithVpcGatewayEndpoint API を呼び出します。
ルートテーブルの関連付けを解除するには: DissociateRouteTablesFromVpcGatewayEndpoint API を呼び出します。
ゲートウェイエンドポイントを削除するには: DeleteVpcGatewayEndpoint API を呼び出します。
OSS バケット:
OSS のバケットポリシーを設定するには: PutBucketPolicy API を呼び出します。
バケットポリシーを変更するには: PutBucketPolicy API を呼び出し、JSON 形式で権限ポリシーを指定します。
バケットポリシーを削除するには: 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 のシナリオについて説明します。
Alibaba Cloud サービスへのアクセス: PrivateLink を使用してプライベートネットワーク経由で OSS にアクセスする。
ユーザー作成サービス (ISV が提供するサービスを含む) へのアクセス: PrivateLink を使用して別の VPC 内の ALB インスタンスにアクセスするおよびPrivateLink を使用して別の VPC 内の NLB インスタンスにアクセスする。
ネットワーク仮想アプライアンスへのアクセス: GWLB を使用して IPv4 トラフィックのセキュリティ検査を実装する。
詳細情報
課金
ゲートウェイエンドポイントは無料です。
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)、Singapore、Malaysia (Kuala Lumpur)、および Indonesia (Jakarta) |
ヨーロッパとアメリカ | Germany (Frankfurt)、UK (London)、US (Silicon Valley)、および US (Virginia) |
中東 | UAE (Dubai) |
PrivateLink がサポートされるリージョンとゾーン: PrivateLink をサポートするリージョンとゾーン。
クォータ
ゲートウェイエンドポイントのクォータ:
1つの VPC は、Alibaba Cloud サービスごとに1つのゲートウェイエンドポイントにのみ関連付けることができ、1つのルートテーブルは1つのゲートウェイエンドポイントにのみ関連付けることができます。
1つのゲートウェイエンドポイントは、複数の VPC ルートテーブルに関連付けることができます。
PrivateLink のクォータ: サービスクォータ。