NAT Gateway と VPC は同じサービスアドレス (エンドポイント) を使用します。 つまり、NAT Gateway の API を呼び出すと、HTTP GET リクエストが NAT Gateway の API エンドポイントに送信され、システムからリクエストに設定されたパラメーターに従ったレスポンスが返されます。 リクエストおよびレスポンスは UTF-8 でエンコードされます。

リクエストの構文

NAT Gateway API では RPC スタイルが使用されます。 NAT Gateway の APIを呼び出すには、HTTP GET リクエストを送信します。

NAT Gateway API リクエストの構造は次のとおりです。

http://Endpoint/?Action=xx&Parameters 
各パラメーターの説明は以下のとおりです。
  • Endpoint: NAT Gateway API のエンドポイントは、 vpc.aliyuncs.com です。
  • Action: 使用する API の名前を設定します。 たとえば、NAT Gateway を作成する場合に使用する API の名前は CreateNatGateway です。
  • Version: API のバージョンを設定します。 NAT Gateway API のバージョンは、 2016-04-28 です。
  • Parameters: リクエストパラメーターを設定します。 複数のパラメーターはアンパサンド (&) で区切ります。

    リクエストパラメーターは、共通パラメーターと API 固有のパラメーターで構成されます。 共通パラメーターには、API のバージョンと ID 認証情報が含まれます。 詳細については、「共通パラメーター」をご参照ください。

以下に、CreateNatGateway を呼び出してNAT Gateway を作成する場合の例を示します。
以下のコードは可読性を優先して編集されています。
https://vpc.aliyuncs.com/?Action=CreateNatGateway
&Format=xml
&Version=2016-04-28
&Signature=xxxx%xxxx%3D
&SignatureMethod=HMAC-SHA1
&SignatureNonce=15215528852396
&SignatureVersion=1.0
&AccessKeyId=key-test
&Timestamp=2012-06-01T12:00:00Z
…

API 認証

アカウントの安全性を維持するため、RAM ユーザーのアクセスキー (AK) を使用した API の呼び出しが推奨されています。 RAM ユーザーの AK を使用して API を呼び出す前に、対応するポリシーをアタッチして RAM ユーザーにアクセス権限を付与する必要があります。

NAT Gateway の APIに関連するポリシーの詳細については、RAM の権限付与 をご参照ください。

署名のリクエスト

API の呼び出しには、NAT Gateway サービスによる認証が必要です。認証はリクエストに署名情報を付加することによって行われます。

NAT Gateway は、AccessKeyID と AccessKeySecret のペア (AK) および対称暗号化を使用して、リクエスト送信者の身元を認証します。 AKは、Alibaba Cloud から Alibaba Cloud アカウントおよび RAM ユーザーに対して発行される証明書で、 ログインパスワードに似た働きをします。 AccessKeyID は訪問者の身元を確認するために使用されます。 AccessKeySecret は署名文字列の暗号化に使用されるキーです。 サーバーは AccessKeySecret を使用して署名文字列を復号します。 AccessKeySecret は機密扱いとする必要があります。

API 呼び出しのリクエストは、次の形式で署名されます。

https://endpoint/?SignatureVersion=1.0&SignatureMethod=HMAC-SHA1&Signature=XXXX%3D&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0axxxxxxxx

CreateNatGateway を呼び出す場合を例に説明します。 AccessKey ID が testid、AccessKey Secret が testsecret の場合、署名の URL は次のとおりです。

http://vpc.aliyuncs.com/?Action=CreateNatGateway
&Timestamp=2016-05-23T12:46:24Z
&Format=XML 
&AccessKeyId=testid 
&SignatureMethod=HMAC-SHA1 
&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0axxxxxxxx
&Version=2014-05-26 
&SignatureVersion=1.0 
署名を生成するには、次の手順を実行します。
  1. リクエストパラメーターを使用して、署名する文字列を作成します。
    GET&%2F&AccessKeyId%3Dtestid&Action%3DCreateNatGateway&Format%3DXML&SignatureMethod%3DHMAC-SHA1&SignatureNonce%3D3ee8c1b8-83d3-44af-a94f-4e0axxxxxxxx&SignatureVersion%3D1.0&TimeStamp%3D2016-02-23T12%253A46%253A24Z&Version%3D2014-05-15 
    .
  2. 文字列の HMAC 値を計算します。

    HMAC 値のキーを追加するには、AccessKeySecret の後にアンパサンド (&) を追加します。 今回の例では、キーは testsecret& に以下の文字列を追加したものです。

    CT9X0VtwR86fNWS********juE=
  3. リクエストパラメーターに署名を追加します。
    http://vpc.aliyuncs.com/?Action=CreateNatGateway
    &Timestamp=2016-05-23T12:46:24Z 
    &Format=XML
    &AccessKeyId=testid
    &SignatureMethod=HMAC-SHA1
    &SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0axxxxxxxx 
    &Version=2014-05-26 
    &SignatureVersion=1.0 
    &Signature=XXXX%3D