暗号化された HTTPS プロトコルを使用して、AccessKey と機密データの転送を保護します。これにより、データ漏洩や中間者攻撃を防ぐことができます。
セキュリティリスク
HTTP プロトコルを使用して Elastic Compute Service (ECS) OpenAPI にアクセスすることは、ネットワーク上でプレーンテキストデータを送信することと同じです。クライアントから Alibaba Cloud サーバーへのパス上にあるルーター、スイッチ、ネットワークキャリアなどの中間ノードは、コンテンツ全体を簡単に読み取ることができます。これにより、次のセキュリティリスクが発生します。
認証情報とデータの漏洩: API リクエストには、認証情報、AccessKey (AK/SK)、およびインスタンス ID やディスクデータなどの操作からの機密情報が含まれています。HTTP 経由で転送されると、この情報はプレーンテキストで完全に公開されます。攻撃者は、ネットワークスニッフィング攻撃などのメソッドを使用して簡単に傍受でき、アカウントの権限が盗まれる可能性があります。
中間者 (MitM) 攻撃: 攻撃者は、盗聴するだけでなく、お客様と Alibaba Cloud サーバーの両方になりすまして通信内容を改ざんすることもできます。たとえば、攻撃者は、ECS インスタンスを作成するリクエストを、コアビジネスインスタンスを削除する悪意のある命令に置き換えたり、返されたデータにエラーメッセージを挿入したりできます。
なりすましとフィッシング: HTTP プロトコルでは、接続先のサーバーが本物の Alibaba Cloud サーバーであることを確認できません。攻撃者は、DNS レコードを偽造したり、偽のサーバーをセットアップしたりして、API リクエストを悪意のあるアドレスに送信させ、認証情報を盗むことができます。
ベストプラクティス
HTTPS プロトコルを使用して OpenAPI にアクセスすると、ソフトウェア開発キット (SDK) はデフォルトで SSL/TLS 証明書の検証を有効にします。コード環境に必要な証明書が構成されていない場合、証明書検証エラーが発生します。
通信のセキュリティを確保するには、実行時パラメーター IgnoreSSL = false を設定して証明書の検証を有効にします。言語 | V 2.0 | V 1.0 |
Java | ||
Python | ||
PHP | ||
Node.js/TypeScript | ||
.NET | ||
Go |
コンプライアンス
ブロック: HTTPS を使用しない ECS OpenAPI リクエストを禁止する
組織またはアカウントレベルで Resource Access Management (RAM) ポリシーを使用して、HTTPS を使用しない ECS OpenAPI リクエストを禁止します。
エンタープライズユーザーの場合:
Alibaba Cloud アカウントで リソースディレクトリコンソール にログインします。左側のナビゲーションウィンドウで、[コントロールポリシー] をクリックします。カスタムポリシーを作成します。次に、次の JSON コンテンツを貼り付けます。
{ "Statement": [ { "Action": "ecs:*", "Effect": "Allow", "Resource": "*", "Condition": { "Bool": { "acs:SecureTransport": "true" } } } ], "Version": "1" }リソースディレクトリコンソールで、適切なフォルダを選択し、ポリシーをアタッチします。このポリシーは、フォルダ内のアカウントからのリクエストをブロックします。
非エンタープライズユーザーの場合:
Alibaba Cloud アカウントで RAM コンソール にログインします。左側のナビゲーションウィンドウで、[ポリシー] をクリックし、上記で説明したポリシーと同じ内容を使用するカスタムポリシーを作成します。
ポリシーを RAM ユーザー、RAM ユーザーグループ、または RAM ロールにアタッチします。詳細については、「ポリシーベースの権限付与の管理」をご参照ください。