AccessKey ネットワーク ACL ポリシーは、永続的な AccessKey を使用する API リクエストのソース IP アドレスを制限し、信頼できるネットワーク環境内で AccessKey が使用されるようにします。
ポリシータイプ
Resource Access Management (RAM) は、2 種類の AccessKey ネットワーク ACL ポリシーを提供します。
-
アカウントレベルのネットワーク ACL ポリシー
このポリシーは、Alibaba Cloud アカウントのすべての AccessKey (Alibaba Cloud アカウントの AccessKey および RAM ユーザーの AccessKey を含む) に適用されます。このポリシーを設定すると、アカウント内のすべての AccessKey に統一されたネットワーク制限が適用されます。
-
AccessKey レベルのネットワーク ACL ポリシー
このポリシーは、Alibaba Cloud アカウントまたは RAM ユーザーに属する単一の AccessKey に適用されます。このポリシーを設定すると、個々の AccessKey に対する制限を設定したり、アカウントレベルのポリシーを上書きしたりできます。
AccessKey レベルのポリシーは、アカウントレベルのポリシーよりも優先されます。AccessKey に特定の AccessKey レベルのポリシーが設定されている場合、アカウントレベルのポリシーはその AccessKey には適用されません。
次のフローチャートは、2 種類のポリシーがどのように評価されるかを示しています。

注意事項
-
ネットワーク ACL ポリシーは、永続的な AccessKey を使用した API コールのみを制限します。STS トークンなど、一時的な認証情報には適用されません。
-
コンソールログインのネットワークアクセスを制限するには、ログインマスクを使用します。詳細については、「ネットワークアクセス制御の設定」をご参照ください。
-
まず、テスト用または新規作成した AccessKey でポリシーをテストします。結果を確認した後、本番環境の AccessKey にポリシーを適用して、不完全な IP アドレス設定によるサービスの中断を回避してください。
-
Alibaba Cloud にデプロイされたアプリケーションがパブリックネットワーク経由で他のクラウドサービスを呼び出す場合は、パブリックネットワークポリシーを設定します。アプリケーションがプライベートネットワーク経由で他のクラウドサービスを呼び出す場合は、VPC ポリシーを設定します。
制限事項
-
AccessKey のネットワーク ACL ポリシーは、ApsaraMQ for RocketMQ、ApsaraMQ for RabbitMQ、ApsaraMQ for MQTT、EventBridge、Simple Message Queue (旧 MNS)、CMS (HTTP 経由でのイベント監視データレポート用)、および Hologres を除くすべてのクラウドサービスに適用されます。サポートが追加された際には、各サービスから発表されます。
-
Alibaba Cloud アカウントまたは単一の AccessKey には、最大 8 つのネットワーク ACL ポリシーを追加できます。このうち、パブリックネットワークポリシーは 1 つのみです。
-
各ポリシーには、最大 50 個の IP アドレスまたは CIDR ブロックを含めることができます。
ポリシーの設定
ポリシーを設定する前に、ActionTrail の AccessKey 監査レコードと、自社のネットワーク構成を確認して、信頼できるネットワークアドレスの完全なリストを作成します。
アカウントレベルのポリシー
-
RAM 管理者として RAM コンソールにログインします。
-
設定 ページで、ネットワークアクセス制御 セクションに移動し、[AccessKey による API 呼び出し時に許可されるソースネットワークアドレス] の横にある 変更 をクリックします。
-
[アカウントレベルのネットワークアクセス制御] パネルで、パブリックネットワークポリシーと VPC ポリシーを設定し、ポリシーを有効にしてから 送信 をクリックします。
ネットワークアクセスポリシーは、ApsaraMQ for RocketMQ、ApsaraMQ for RabbitMQ、ApsaraMQ for MQTT、EventBridge、Simple Message Queue (旧 MNS)、CMS (HTTP 経由でのイベント監視データレポート用)、および Hologres には適用されません。ポリシーを作成する前に、AccessKey の操作ログを確認して、過去のソース IP アドレスを確認することを推奨します。
-
[ポリシーステータス]:有効 を選択してポリシーを有効化します。
-
[パブリックネットワーク ACL]:パブリックネットワークステートメントを追加 をクリックし、パブリック IP アドレスまたは CIDR ブロックを入力します。IPv4 および IPv6 形式がサポートされています。
パブリックネットワークポリシーを追加しない場合、すべてのパブリック IP アドレスからのアクセスが拒否されます。すべてのパブリック IP アドレスからのアクセスを許可するには、すべてのパブリックネットワークアクセスを許可 をクリックします。この操作により、
0.0.0.0/0または::/0を含むパブリックネットワークポリシーが追加されます。 -
[VPC ネットワーク ACL]:VPC ステートメントを追加 をクリックし、VPC ID と VPC 内の IP アドレスまたは CIDR ブロックを入力します。IPv4 および IPv6 形式がサポートされています。
VPC ポリシーを追加しない場合、VPC 内のすべての IP アドレスからのアクセスは拒否されます。すべてのアカウントにまたがる任意の VPC 内のすべての IP アドレスからのアクセスを許可するには、すべての VPC ネットワークアクセスを許可 をクリックします。この操作により、VPC ID が
AllowAllVPCに設定され、IP アドレスが0.0.0.0/0または::/0に設定された VPC ポリシーが追加されます。
説明ポリシーには複数の IP アドレスまたは CIDR ブロックを入力できます。エントリは、スペース、カンマ (,)、またはセミコロン (;) で区切ります。
-
-
送信の確認 ダイアログボックスで、アカウント ID を入力し、OK をクリックします。
重要ポリシーが有効になるまで、送信後数分かかります。アカウントレベルのネットワーク ACL ポリシーは、AccessKey レベルのポリシーが設定されている AccessKey には適用されません。
RAM ユーザーの AccessKey レベルのポリシー
-
RAM 管理者として RAM コンソールにログインします。
-
ナビゲーションペインで、 を選択します。
-
ユーザー ページで、対象の RAM ユーザーの名前をクリックします。
-
[認証] タブの AccessKey セクションで、対象の AccessKey を見つけ、[操作] 列の [ネットワークアクセス制御] をクリックします。
対象の AccessKey がかなり前 (たとえば 5 か月前) に作成された場合、[ローテーション推奨] ラベルが表示され、AccessKey を速やかにローテーションするように求められます。
-
[AccessKey レベルのネットワークアクセス制御] パネルで、パブリックネットワークポリシーと VPC ポリシーを設定し、ポリシーを有効にしてから 送信 をクリックします。
このポリシーは、ApsaraMQ for RocketMQ、ApsaraMQ for RabbitMQ、ApsaraMQ for MQTT、EventBridge、Simple Message Queue (旧 MNS)、CMS (HTTP 経由でのイベント監視データレポート用)、および Hologres には適用されません。ポリシーを作成する前に、AccessKey の操作ログを確認することを推奨します。
-
[ポリシーステータス]:有効 を選択してポリシーを有効化します。
-
[パブリックネットワーク ACL]:パブリックネットワークステートメントを追加 をクリックし、パブリック IP アドレスまたは CIDR ブロックを入力します。IPv4 および IPv6 形式がサポートされています。
パブリックネットワークポリシーを追加しない場合、すべてのパブリック IP アドレスからのアクセスが拒否されます。すべてのパブリック IP アドレスからのアクセスを許可するには、すべてのパブリックネットワークアクセスを許可 をクリックします。この操作により、
0.0.0.0/0または::/0を含むパブリックネットワークポリシーが追加されます。 -
[VPC ネットワーク ACL]:VPC ステートメントを追加 をクリックし、VPC ID と VPC 内の IP アドレスまたは CIDR ブロックを入力します。IPv4 および IPv6 形式がサポートされています。
VPC ポリシーを追加しない場合、VPC 内のすべての IP アドレスからのアクセスは拒否されます。すべてのアカウントにまたがる任意の VPC 内のすべての IP アドレスからのアクセスを許可するには、すべての VPC ネットワークアクセスを許可 をクリックします。この操作により、VPC ID が
AllowAllVPCに設定され、IP アドレスが0.0.0.0/0または::/0に設定された VPC ポリシーが追加されます。
説明ポリシーには複数の IP アドレスまたは CIDR ブロックを入力できます。エントリは、スペース、カンマ (,)、またはセミコロン (;) で区切ります。
-
-
送信の確認 ダイアログボックスで、AccessKey ID を入力し、OK をクリックします。
重要ポリシーが有効になるまで、送信後数分かかります。アカウントレベルのネットワーク ACL ポリシーは、AccessKey レベルのポリシーが設定されている AccessKey には適用されません。
Alibaba Cloud アカウントの AccessKey レベルのポリシー
-
Alibaba Cloud アカウントで Alibaba Cloud マネジメントコンソールにログインします。
-
右上のプロフィールアイコンをポイントし、[AccessKey] をクリックします。
-
[メインアカウントの AccessKey は推奨されません] ダイアログボックスで、[メインアカウントの AccessKey を使用する際のセキュリティリスクを認識しています] を選択し、[メインアカウントの AccessKey を使用] をクリックします。
-
対象の AccessKey を見つけ、[操作] 列の [ネットワークアクセス制御] をクリックします。
-
[AccessKey レベルのネットワークアクセス制御] パネルで、パブリックネットワークポリシーと VPC ポリシーを設定し、ポリシーを有効にしてから 送信 をクリックします。
-
[ポリシーステータス]:有効 を選択してポリシーを有効化します。
-
[パブリックネットワーク ACL]:パブリックネットワークステートメントを追加 をクリックし、パブリック IP アドレスまたは CIDR ブロックを入力します。IPv4 および IPv6 形式がサポートされています。
パブリックネットワークポリシーを追加しない場合、すべてのパブリック IP アドレスからのアクセスが拒否されます。すべてのパブリック IP アドレスからのアクセスを許可するには、すべてのパブリックネットワークアクセスを許可 をクリックします。この操作により、
0.0.0.0/0または::/0を含むパブリックネットワークポリシーが追加されます。 -
[VPC ネットワーク ACL]:VPC ステートメントを追加 をクリックし、VPC ID と VPC 内の IP アドレスまたは CIDR ブロックを入力します。IPv4 および IPv6 形式がサポートされています。
VPC ポリシーを追加しない場合、VPC 内のすべての IP アドレスからのアクセスは拒否されます。すべてのアカウントにまたがる任意の VPC 内のすべての IP アドレスからのアクセスを許可するには、すべての VPC ネットワークアクセスを許可 をクリックします。この操作により、VPC ID が
AllowAllVPCに設定され、IP アドレスが0.0.0.0/0または::/0に設定された VPC ポリシーが追加されます。
説明ポリシーには複数の IP アドレスまたは CIDR ブロックを入力できます。エントリは、スペース、カンマ (,)、またはセミコロン (;) で区切ります。
-
-
送信の確認 ダイアログボックスで、AccessKey ID を入力し、OK をクリックします。
重要ポリシーが有効になるまで、送信後数分かかります。アカウントレベルのネットワーク ACL ポリシーは、AccessKey レベルのポリシーが設定されている AccessKey には適用されません。
設定例
|
シナリオ |
ポリシー設定 |
|
どの AccessKey のネットワークアクセスも制限しない場合 |
ポリシーの内容にかかわらず、アカウントレベルと AccessKey レベルの両方のネットワーク ACL ポリシーのステータスを 無効 に設定します。 |
|
すべてのパブリック IP アドレスからの呼び出しを許可する場合 |
アカウントレベルまたは AccessKey レベルのネットワーク ACL ポリシーで、IP アドレスが |
|
アカウントを問わず、すべての VPC IP アドレスからの呼び出しを許可する場合 |
アカウントレベルまたは AccessKey レベルのネットワーク ACL ポリシーで、VPC ID が |
|
すべてのパブリック IP アドレスからの呼び出しを拒否する場合 |
アカウントレベルまたは AccessKey レベルのネットワーク ACL ポリシーで、ポリシーのステータスを 有効 に設定し、パブリックネットワークポリシーは追加しません。 |
|
すべての VPC IP アドレスからの呼び出しを拒否する場合 |
アカウントレベルまたは AccessKey レベルのネットワーク ACL ポリシーで、ポリシーのステータスを 有効 に設定し、VPC ポリシーは追加しません。 |
|
アカウントレベルのアクセス制限がある中で、特定の AccessKey に限り、任意のパブリックおよび VPC の IP アドレスからの呼び出しを許可する場合 |
特定の AccessKey に対して、以下の内容で AccessKey レベルのネットワーク ACL ポリシーを有効にします。
|
|
アカウント内のすべての AccessKey で、特定のパブリック IP アドレス (例: |
以下の内容でアカウントレベルのネットワーク ACL ポリシーを有効にします。
詳細については、「アカウントレベルのポリシーの設定」をご参照ください。 |
|
特定の AccessKey で、特定のパブリック IP アドレス (例: |
特定の AccessKey に対して、以下の内容で AccessKey レベルのネットワーク ACL ポリシーを有効にします。
AccessKey レベルのネットワーク ACL ポリシーが有効になると、アカウントレベルのポリシーはこの AccessKey には適用されなくなります。 詳細については、「RAM ユーザーの AccessKey レベルのポリシーの設定」および「Alibaba Cloud アカウントの AccessKey レベルのポリシーの設定」をご参照ください。 |
|
|
アカウントレベルまたは AccessKey レベルのネットワーク ACL ポリシーで、VPC ポリシーを追加します。VPC ID には、ピア VPC ID (例: VPC ポリシーのみを追加し、パブリックネットワークポリシーを追加しない場合、すべてのパブリック API 呼び出しは拒否されます。このポリシーを適用する前に、ワークロードへの影響を評価してください。 詳細については、「アカウントレベルのポリシーの設定」をご参照ください。 |
よくある質問
信頼できる IP アドレスの特定方法
ActionTrail での過去の API コールデータの確認
ActionTrail の監査ログを使用して、過去に成功した API コールのソース IP アドレスをクエリします。次のいずれかの方法を選択します。
-
証跡を Log Service (SLS) に配信するように設定した場合:ActionTrail コンソールの [証跡] ページで、証跡の詳細を開き、SLS Logstore 名をクリックして Log Service コンソールに移動します。その後、検索クエリを実行して、指定された AccessKey (フィールド
event.userIdentity.accessKeyId) の過去のソース IP アドレス (event.sourceIpAddress) と VPC ID (event.vpcId) を集計できます。詳細については、「Log Service または OSS コンソールでのイベントのクエリ」をご参照ください。以下はクエリのサンプルです:
* | SELECT "event.userIdentity.accessKeyId" AS access_key_id, "event.sourceIpAddress" AS source_ip_address, "event.vpcId" AS vpc_id FROM log WHERE "event.userIdentity.accessKeyId" = 'LTAI****************' -
証跡の配信を設定していない場合:ActionTrail コンソールの [AccessKey 監査] ページで、AccessKey ID を入力し、コールレコードで各クラウドサービスのソース IP アドレスを表示します。詳細については、「AccessKey ログのクエリ」をご参照ください。
ActionTrail は、サポートされているクラウドサービスの監査イベントのみを対象としています。サポートされていないデータイベントについては、対応するクラウドサービスのネイティブ監査機能を使用してください。
ネットワーク構成のクエリ
Alibaba Cloud にデプロイされたアプリケーション
ECS や ACK などの Alibaba Cloud サービスにデプロイされたアプリケーションについては、Alibaba Cloud コンソールでリソースのパブリック IP アドレス、VPC ID、およびプライベート CIDR ブロックを確認します。
アプリケーションがパブリックエンドポイントを使用してクラウドサービスを呼び出す場合、ソース IP アドレスはリソースまたはその NAT ゲートウェイのパブリックエグレス IP アドレスです。アプリケーションが VPC エンドポイントを使用してクラウドサービスを呼び出す場合、ソース IP アドレスは VPC からのプライベート IP アドレスです。
クラウドサービス間の呼び出し
Alibaba Cloud サービス間の呼び出しは、内部 IP アドレスから発信される場合があります。ActionTrail レコードでは、イベントソースがサービスアドレスまたは "internal" として表示されることがあります。AccessKey を必要としない RAM ロールや他の認証情報メソッドを使用することを推奨します。
以下は、特定のサービス間呼び出しの参考設定です。
-
DataWorks: DataWorks が MaxCompute を呼び出してデータ分析を行う際に使用される IP 範囲については、「データ分析 IP ホワイトリスト」をご参照ください。メタデータ収集に使用される可能性のある IP 範囲については、「メタデータ収集のための IP アドレスホワイトリストの設定」をご参照ください。
-
Log Service (SLS): データ処理を伴うログ転送時には、AccessKey を使用する代わりに、RAM ロールを使用して同一アカウント内でデータを転送することを推奨します。
-
Application Real-Time Monitoring Service (ARMS): クロスアカウントアクセスには、RAM ロールの使用を推奨します。
動的 IP アドレス
-
クラウドリソースの IP アドレスは、伸縮自在なスケーリングや自動再設定中に変更される可能性があります。新しい IP アドレスを速やかにネットワーク ACL ポリシーに追加してください。
-
Function Compute: デフォルトでは、Function Compute は動的なパブリック IP アドレスを使用します。静的なパブリック IP アドレスを設定できます。
Alibaba Cloud の外部にデプロイされたアプリケーション
アプリケーションのデプロイ環境のエグレス IP アドレスを手動で確認してください。
オフィスネットワークの IP アドレス
ローカルでの開発やデバッグに AccessKey を使用する場合は、自社のネットワーク管理者に連絡して、オフィスネットワークのエグレス IP アドレスを取得します。
予期しない拒否のトラブルシューティング
症状
ネットワーク ACL ポリシーが有効になると、許可された範囲外のソース IP アドレスからの呼び出しは拒否されます。一般的なエラーメッセージは次のとおりです。
Message: The specified parameter "AccessKeyId.AccessPolicyDenied" is not valid.Message: code: 400, Specified access key denied due to access policy.
ソリューション
API コールがネットワーク ACL ポリシーによって予期せず拒否された場合は、次のトラブルシューティング手順に従ってください。
-
影響を受ける AccessKey に AccessKey レベルのネットワーク ACL ポリシーが設定されているかどうかを確認します。
-
設定されている場合は、AccessKey レベルのネットワーク ACL ポリシーを変更して、ソース IP アドレスを含めます。
-
設定されていない場合は、次の手順に進みます。
-
-
RAM 管理者として、アカウントレベルのネットワーク ACL ポリシーを確認し、ソース IP アドレスが含まれるように変更します。
-
問題が解決しない場合は、ポリシー内のソース IP アドレスが不正確である可能性があります。正しい IP アドレスを確認して取得してください。
ActionTrail を使用して、AccessKey コールの過去のソース IP アドレスを見つけることができます。詳細については、「ActionTrail での過去の API コールデータの確認」をご参照ください。