NAT GatewayとVirtual Private Cloud (VPC) APIは同じエンドポイントを共有します。 NAT Gateway APIを呼び出すには、NAT Gateway APIのエンドポイントにHTTP GETリクエストを送信する必要があります。 呼び出す API に対応するリクエストパラメーターを追加する必要があります。 API操作を呼び出した後、システムは応答を返します。 要求および応答は両方ともUTF-8で符号化される。
リクエスト構文
NAT Gateway API操作では、リモートプロシージャコール (RPC) プロトコルを使用します。 HTTP GETリクエストを送信することで、NAT Gateway API操作を呼び出すことができます。
次のリクエスト構文を使用します。
http://Endpoint/?Action=xx&Parameters
- Endpoint: NAT Gateway APIのエンドポイントが
vpc.aliyuncs.com
です。 - Action:実行中の操作の名前を設定します。 たとえば、NATゲートウェイを作成するには、ActionパラメーターをCreateNatGatewayに設定する必要があります。
- Version: 使用するAPIのバージョン。 現在のNAT Gateway APIのバージョンは2016-04-28です。
- Parameters:API のリクエストパラメーターを設定します。 複数のパラメーターを指定する場合は、アンパサンド (&) で区切ります。
リクエストパラメーターは、共通パラメーターと API 固有のパラメーターで構成されます。 共通パラメータには、APIのバージョン番号や認証情報などの情報が含まれます。 詳細については、「共通パラメーター」をご参照ください。
https://vpc.aliyuncs.com/?Action=CreateNatGateway
&Format=xml
&バージョン=2016-04-28
&署名=xxxx % xxxx % 3D
&SignatureMethod=HMAC-SHA1
&SignatureNonce=15215528852396
&SignatureVersion=1.0
&AccessKeyId=キーテスト
&タイムスタンプ=2012-06-01T12:00:00Z
…
承認
アカウントのセキュリティを確保するために、RAM (Resource Access Management) ユーザーとしてNAT Gateway API操作を呼び出すことを推奨します。 NAT Gateway API操作をRAMユーザーとして呼び出すには、権限ポリシーを作成してRAMユーザーにアタッチする必要があります。
RAMユーザーに許可できるNAT GatewayリソースとAPI操作の詳細については、「RAM の権限付与」をご参照ください。
署名
セキュリティを確保するには、すべての API リクエストに署名する必要があります。 Alibaba Cloud はリクエストの署名を使用して、API の呼び出し元を確認します。
NAT Gatewayは、AccessKeyペアで対称暗号化を実装して、リクエスト送信者のIDを検証します。 AccessKeyペアは、Alibaba CloudアカウントとRAMユーザーに発行されるID認証情報で、ユーザー名とパスワードのペアに似ています。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 AccessKey IDはユーザーの ID を検証するために使用され、AccessKey secret は署名文字列を暗号化して検証するために使用されます。 AccessKeyは秘密にしておく必要があります。
次の形式でNAT Gateway APIリクエストに署名を追加する必要があります。
https:// endpoint/?SignatureVersion=1.0&SignatureMethod=HMAC-SHA1&Signature=XXXX %
3D&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e 0axxxxxxxx
CreateNatGatewayを例として使用します。 AccessKey IDがtestid
で、AccessKey secretがtestsecret
であるとします。 次のサンプルコードは、リクエストが署名される前のリクエストのURLを示しています。
http://vpc.aliyuncs.com/?Action=CreateNatGateway
&タイムスタンプ=2016-05-23T12:46:24Z
&フォーマット=XML
&AccessKeyId=testid
&SignatureMethod=HMAC-SHA1
&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0axxxxxxxx
&バージョン=2014-05-26
&SignatureVersion=1.0
- リクエストパラメーターを使用して、文字列記号を作成します。
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
- 署名する文字列の HMAC 値を計算します。
HMAC値を計算するキーとして、AccessKey secretにアンパサンド (&) を追加します。 この例のキーは、
testsecret&
とします。CT9X0VtwR86fNWS********juE=
- 署名文字列を Signature パラメーターとしてリクエストに追加します。
http://vpc.aliyuncs.com/?Action=CreateNatGateway &タイムスタンプ=2016-05-23T12:46:24Z &フォーマット=XML &AccessKeyId=testid &SignatureMethod=HMAC-SHA1 &SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0axxxxxxxx &バージョン=2014-05-26 &SignatureVersion=1.0 &署名=XXXX % 3D