ネットワークアクセス制御リスト (ACL) ポリシーを作成して、AccessKey ペアで行われる API 呼び出しを特定の送信元 IP アドレスに制限できます。これにより、ご利用の AccessKey ペアが信頼できるネットワーク環境からのみ使用されるようになり、セキュリティが一層強化されます。
ポリシータイプ
Resource Access Management (RAM) は、AccessKey ペアに対して以下のタイプのネットワーク ACL ポリシーを提供します。
アカウントレベルのポリシー
アカウントレベルのポリシーは、Alibaba Cloud アカウント内のすべての AccessKey ペア (すべての RAM ユーザーに属するものを含む) に適用されます。
AccessKey ペアレベルのポリシー
AccessKey ペアレベルのポリシーは、特定の AccessKey ペアにのみ適用されます。
AccessKey ペアレベルのポリシーは、アカウントレベルのポリシーよりも優先されます。AccessKey ペアレベルのポリシーがペアにアタッチされている場合、アカウントレベルのポリシーはそのペアには適用されません。
以下のフローチャートは、ポリシーの評価プロセスを示しています。

注意事項
これらのポリシーは、Alibaba Cloud アカウントおよび RAM ユーザーの AccessKey ペアにのみ適用されます。Security Token Service (STS) から取得した一時的な認証情報には適用されません。
コンソールへのログインに対するネットワークアクセスを制御するには、代わりにログインマスクを使用してください。詳細については、「ネットワークアクセス制御の設定」をご参照ください。
本番ワークロードを中断させる可能性のある設定ミスを防ぐため、テスト用の AccessKey ペアを使用して非本番環境でポリシーをテストすることを強く推奨します。
Alibaba Cloud 上のアプリケーションが API 呼び出しを行う場合、送信元 IP アドレスはネットワークパスによって決まります。呼び出しがインターネット経由でルーティングされる場合は、リソースのパブリック IP アドレスをパブリックネットワークポリシーに追加します。呼び出しがプライベートネットワーク (VPC エンドポイントなど) を経由してルーティングされる場合は、リソースのプライベート IP アドレスを VPC ネットワークポリシーに追加します。
制限事項
AccessKey ペアのネットワーク ACL は、次のサービスではサポートされていません:ApsaraMQ for RocketMQ、ApsaraMQ for RabbitMQ、ApsaraMQ for MQTT、EventBridge、Simple Message Queue (MNS)、Cloud Monitor (HTTP 経由でのイベントモニタリングデータのレポート)、および Hologres。このリストの更新は、各サービスチームから発表されます。
Alibaba Cloud アカウントまたは単一の AccessKey ペアには、最大 8 つのネットワーク ACL ポリシーをアタッチできます。各ターゲットには、パブリックネットワーク ACL ポリシーを 1 つだけ設定できます。
各ポリシーには、最大 50 個の IP アドレスまたは CIDR ブロックを含めることができます。
ポリシーの設定
ポリシーを作成する前に、監査ログを確認し、ネットワーク管理者に相談して、信頼できるすべての IP アドレスを特定することを推奨します。これにより、意図せず正当なトラフィックをブロックすることを防げます。
アカウントレベルのポリシーの設定
RAM 管理者として、RAM コンソール にログインします。
左側のナビゲーションウィンドウで、[設定] をクリックします。[ネットワークアクセス制御] セクションで、[AccessKey による API 呼び出し時の許可される送信元ネットワークアドレス] の横にある [変更] をクリックします。

[アカウントレベルのネットワークアクセス制御] パネルで、パブリックネットワークと VPC ネットワークのポリシーを設定し、[ポリシーのステータス] を [有効] に設定して、[送信] をクリックします。

[ポリシーのステータス]:ポリシーを有効にするには、[有効] を選択します。
[パブリックネットワークポリシー]:[パブリックネットワークポリシーの追加] をクリックし、許可するパブリック IP アドレスまたは CIDR ブロック (IPv4 および IPv6) を入力します。ポリシーを作成しない場合、パブリックネットワークからのすべてのアクセスが拒否されます。すべてのパブリックネットワークからのアクセスを許可するには、[すべてのパブリックネットワークアクセスを許可] をクリックします。これにより、CIDR ブロック
0.0.0.0/0と::/0を持つポリシーが追加されます。[VPC ネットワークポリシー]:[VPC (Virtual Private Cloud) ポリシーの追加] をクリックし、VPC ID とその VPC 内で許可する IP アドレスまたは CIDR ブロックを入力します。ポリシーを作成しない場合、VPC からのすべてのアクセスが拒否されます。任意のアカウントのすべての VPC からのアクセスを許可するには、[すべての VPC ネットワークアクセスを許可] をクリックします。これにより、VPC ID
AllowAllVPCと CIDR ブロック0.0.0.0/0および::/0を持つポリシーが追加されます。
説明1 つのポリシーに複数の IP アドレスまたは CIDR ブロックを入力できます。複数のエントリは、スペース、コンマ (,)、またはセミコロン (;) で区切ります。
[送信の確認] ダイアログボックスで、アカウント ID を入力し、[OK] をクリックします。
重要ポリシーがすべてのサービスに反映されるまで数分かかる場合があります。AccessKey ペアレベルのポリシーは、常にアカウントレベルのポリシーをオーバーライドすることにご注意ください。
RAM ユーザーの AccessKey ペアレベルのポリシーの設定
RAM 管理者としてRAM コンソールにログインします。
左側のナビゲーションウィンドウで、を選択します。
[ユーザー] ページで、対象の RAM ユーザーのユーザー名をクリックします。
[認証] タブの [AccessKey] セクションで、対象の AccessKey ペアを見つけ、[操作] 列の [ネットワークアクセス制御] をクリックします。

[AccessKey レベルのネットワークアクセス制御] パネルで、パブリックネットワークと VPC ネットワークのポリシーを設定し、[ポリシーのステータス] を [有効] に設定して、[送信] をクリックします。

[ポリシーのステータス]:ポリシーを有効にするには、[有効] を選択します。
[パブリックネットワークポリシー]:[パブリックネットワークポリシーの追加] をクリックし、許可するパブリック IP アドレスまたは CIDR ブロック (IPv4 および IPv6) を入力します。ポリシーを作成しない場合、パブリックネットワークからのすべてのアクセスが拒否されます。すべてのパブリックネットワークからのアクセスを許可するには、[すべてのパブリックネットワークアクセスを許可] をクリックします。これにより、CIDR ブロック
0.0.0.0/0と::/0を持つポリシーが追加されます。[VPC ネットワークポリシー]:[VPC (Virtual Private Cloud) ポリシーの追加] をクリックし、VPC ID とその VPC 内で許可する IP アドレスまたは CIDR ブロックを入力します。ポリシーを作成しない場合、VPC からのすべてのアクセスが拒否されます。任意のアカウントのすべての VPC からのアクセスを許可するには、[すべての VPC ネットワークアクセスを許可] をクリックします。これにより、VPC ID
AllowAllVPCと CIDR ブロック0.0.0.0/0および::/0を持つポリシーが追加されます。
説明1 つのポリシーに複数の IP アドレスまたは CIDR ブロックを入力できます。複数のエントリは、スペース、コンマ (,)、またはセミコロン (;) で区切ります。
[送信の確認] ダイアログボックスで、AccessKey ID を入力し、[OK] をクリックします。
重要ポリシーがすべてのサービスに反映されるまで数分かかる場合があります。AccessKey ペアレベルのポリシーは、常にアカウントレベルのポリシーをオーバーライドすることにご注意ください。
Alibaba Cloud アカウントの AccessKey ペアレベルのポリシーの設定
ご利用の Alibaba Cloud アカウントを使用して、Alibaba Cloud Management Console にログインします。
右上隅のプロフィール画像にカーソルを合わせ、[AccessKey] をクリックします。

[メインアカウントの AccessKey は推奨されません] ダイアログボックスで、[メインアカウントの AccessKey を使用する際のセキュリティリスクを認識しています] を選択して確認し、[メインアカウントの AccessKey を使用] をクリックします。
表示されるページで、対象の AccessKey ペアを見つけ、[ネットワークアクセス制御] を [操作] 列でクリックします。

[AccessKey レベルのネットワークアクセス制御] パネルで、パブリックネットワークと VPC ネットワークのポリシーを設定し、[ポリシーのステータス] を [有効] に設定して、[送信] をクリックします。

[ポリシーのステータス]:ポリシーを有効にするには、[有効] を選択します。
[パブリックネットワークポリシー]:[パブリックネットワークポリシーの追加] をクリックし、許可するパブリック IP アドレスまたは CIDR ブロック (IPv4 および IPv6) を入力します。ポリシーを作成しない場合、パブリックネットワークからのすべてのアクセスが拒否されます。すべてのパブリックネットワークからのアクセスを許可するには、[すべてのパブリックネットワークアクセスを許可] をクリックします。これにより、CIDR ブロック
0.0.0.0/0と::/0を持つポリシーが追加されます。[VPC ネットワークポリシー]:[VPC (Virtual Private Cloud) ポリシーの追加] をクリックし、VPC ID とその VPC 内で許可する IP アドレスまたは CIDR ブロックを入力します。ポリシーを作成しない場合、VPC からのすべてのアクセスが拒否されます。任意のアカウントのすべての VPC からのアクセスを許可するには、[すべての VPC ネットワークアクセスを許可] をクリックします。これにより、VPC ID
AllowAllVPCと CIDR ブロック0.0.0.0/0および::/0を持つポリシーが追加されます。
説明1 つのポリシーに複数の IP アドレスまたは CIDR ブロックを入力できます。複数のエントリは、スペース、コンマ (,)、またはセミコロン (;) で区切ります。
[送信の確認] ダイアログボックスで、AccessKey ID を入力し、[OK] をクリックします。
重要ポリシーがすべてのサービスに反映されるまで数分かかる場合があります。AccessKey ペアレベルのポリシーは、常にアカウントレベルのポリシーをオーバーライドすることにご注意ください。
設定例
シナリオ | ポリシー設定 |
すべての AccessKey ペアのネットワーク ACL を無効にする | すべてのアカウントレベルおよび AccessKey ペアレベルのポリシーで、[ポリシーのステータス] を [無効] に設定します。 |
すべてのパブリック IP アドレスからの API 呼び出しを許可する | パブリックネットワークポリシーで、CIDR ブロック |
任意の VPC からの API 呼び出しを許可する | VPC ネットワークポリシーで、VPC ID |
すべてのパブリック IP アドレスからの API 呼び出しを拒否する | ポリシーを有効にしますが、パブリックネットワークポリシーは作成しません。 |
すべての VPC からの API 呼び出しを拒否する | ポリシーを有効にしますが、VPC ネットワークポリシーは作成しません。 |
制限的なアカウントレベルのポリシーをオーバーライドし、特定の AccessKey ペアを任意の IP アドレスから使用できるように例外を作成する | 特定の AccessKey ペアに対して、次のルールを持つ AccessKey ペアレベルのポリシーを有効にします。
|
アカウント内のすべての AccessKey ペアを、特定のパブリック IP (例: | 次のルールを持つアカウントレベルのポリシーを有効にします。
詳細については、本トピックの「アカウントレベルのポリシーの設定」セクションをご参照ください。 |
特定の AccessKey ペアを、特定のパブリック IP (例: | 特定の AccessKey ペアに対して、次のルールを持つ AccessKey ペアレベルのポリシーを有効にします。
この AccessKey ペアレベルのポリシーは、この AccessKey ペアに対する任意のアカウントレベルのポリシーをオーバーライドします。 詳細については、本トピックの「RAM ユーザーの AccessKey ペアレベルのポリシーの設定」および「Alibaba Cloud アカウントの AccessKey ペアレベルのポリシーの設定」セクションをご参照ください。 |
よくある質問
ポリシーに設定すべき信頼できる IP アドレスを特定するにはどうすればよいですか?
ActionTrail で過去の API 呼び出しデータを確認する
ActionTrail の監査ログを使用して、過去に成功した API 呼び出しの送信元 IP アドレスを見つけることができます。以下の方法が利用可能です。
ご利用のトレイルがイベントを Simple Log Service (SLS) Logstore に配信している場合、ログを直接クエリできます。ActionTrail コンソールで、ご利用のトレイルの詳細ページを開き、Logstore 名をクリックします。SLS コンソールで、特定の AccessKey ID (
event.userIdentity.accessKeyId) または VPC ID (event.vpcId) に関連付けられた送信元 IP アドレス (event.sourceIpAddress) をクエリできます。詳細については、「Simple 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****************'ご利用のトレイルがイベントを SLS Logstore に配信していない場合、ActionTrail コンソールのイベント履歴を使用できます。[AccessKey ペアの監査] ページに移動し、AccessKey ID を入力して、呼び出しレコードの送信元 IP アドレスを表示します。詳細については、「AccessKey ペアのログをクエリする」をご参照ください。
ActionTrail は、ほとんどの Alibaba Cloud サービスの管理イベントを記録します。データイベント、または ActionTrail がカバーしていないサービスについては、個々のサービスの監査機能を使用する必要がある場合があります。詳細については、「サポートされているクラウドサービスの監査イベント」をご参照ください。
ネットワーク構成のクエリ
Alibaba Cloud にデプロイされたアプリケーション
アプリケーションが Elastic Compute Service (ECS) やコンテナサービスなどの Alibaba Cloud リソースにデプロイされている場合、割り当てられたパブリック IP アドレス、VPC ID、およびプライベート CIDR ブロックをコンソールで見つけることができます。
これらのアプリケーションが他のサービスのパブリックエンドポイントを呼び出すとき、送信元 IP アドレスはリソースまたはその NAT ゲートウェイのパブリックアウトバウンド IP アドレスになります。プライベート VPC エンドポイントを呼び出すとき、送信元 IP アドレスは VPC のプライベート IP アドレスになります。
Alibaba Cloud サービス間の呼び出し
ある Alibaba Cloud サービスが別のサービスを呼び出すとき、送信元 IP アドレスは予測不可能な内部サービス IP アドレスである可能性があります。このような場合、AccessKey ペアを埋め込む代わりに、サービス間の権限付与に RAM ロールを使用することを強く推奨します。
以下は、特定のサービス間の呼び出しに関するリファレンス構成です。
DataWorks:DataWorks がデータ分析のために MaxCompute を呼び出す際に使用される CIDR ブロックを見つけるには、「データ分析のための IP ホワイトリスト」をご参照ください。メタデータ収集については、「メタデータ収集のための IP アドレスホワイトリストの設定」をご参照ください。
SLS:アカウント間でログを転送するには、AccessKey ペアの代わりに RAM ロールを使用することを推奨します。詳細については、「同じ Alibaba Cloud アカウント内でデータを転送するためにカスタムロールを使用する」をご参照ください。
Application Real-Time Monitoring Service (ARMS):クロスアカウント統合には、RAM ロールを使用することを推奨します。詳細については、「クロスアカウントアクセス」をご参照ください。
動的 IP アドレス
クラウドリソースが自動的にスケーリングすると、その IP アドレスが変更されることがあります。新しい IP アドレスでネットワーク ACL ポリシーを更新する必要があります。
Function Compute:デフォルトでは、Function Compute は動的パブリック IP アドレスを使用します。予測可能な IP アドレスを使用するには、サービスの固定パブリック IP アドレスを設定する必要があります。
Alibaba Cloud の外部にデプロイされたアプリケーション
外部アプリケーション環境のアウトバウンド IP アドレスを手動で特定する必要があります。
オフィスネットワーク
ローカル開発に AccessKey ペアを使用する場合、ネットワーク管理者に連絡して、オフィスネットワークのアウトバウンド IP アドレスを取得してください。
API 呼び出しがネットワーク ACL ポリシーによって拒否されるのはなぜですか?
アクティブなネットワーク ACL ポリシーで許可されていない IP アドレスから API 呼び出しが行われると、その呼び出しは拒否されます。以下のいずれかのエラーメッセージが表示されることがあります。
Message: The specified parameter "AccessKeyId.AccessPolicyDenied" is not valid.Message: code: 400, Specified access key denied due to access policy. ソリューション
この問題を解決するには、正しい送信元 IP アドレスを特定し、適切なポリシーに追加する必要があります。
影響を受ける AccessKey ペアに AccessKey ペアレベルのポリシーが設定されているかどうかを確認します。
ポリシーが存在する場合、必要な送信元 IP アドレスをそのポリシーに追加します。
AccessKey ペアレベルのポリシーが存在しない場合、次のステップに進みます。
送信元 IP アドレスをアカウントレベルのポリシーに追加します。
それでも API 呼び出しが拒否される場合は、追加した IP アドレスが正しく、呼び出しを行っているクライアントの実際の送信元 IP アドレスと一致していることを確認します。
正しい送信元 IP アドレスを見つけるには、ActionTrail を使用して、ポリシーが有効になる前に行われた成功した API 呼び出しを確認できます。詳細については、本トピックの「ActionTrail で過去の API 呼び出しデータを確認する」セクションをご参照ください。