メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

カスタムポリシーを使用して署名付き URL を作成する

カスタムポリシーを使用して署名付き URL を作成するには、以下の手順を実行します。

カスタムポリシーを使用して署名付き URL を作成するには

  1. .NET または Java を使用して署名付き URL を作成しており、キーペアのプライベートキーをデフォルトの .pem 形式から .NET または Java 対応の形式に変更していない場合は、それを変換します。詳細については、「CloudFront プライベートキーの形式を変更する(.NET および Java のみ)」を参照してください。

  2. 以下の値を指定の順序で連結し、(タブと改行文字を含めて)パート間の空白文字を削除します。アプリケーションコード内の文字列にエスケープ文字を含めることが必要になる場合があります。すべての値は文字列型です。各パートの番号(1)は以下の 2 つの例の番号に対応します。

    1 オブジェクトのベース URL

    ベース URL は、署名付き URL を使用しなかった場合にオブジェクトへのアクセスに使用する CloudFront URL であり、独自のクエリ文字列パラメーターを含みます(ある場合)。ウェブディストリビューション用の URL 形式の詳細については、「CloudFront オブジェクトの URL の形式」を参照してください。

    以下の例は、ウェブディストリビューションで指定する値を示しています。

    • 以下の CloudFront URL は、ウェブディストリビューション内のオブジェクトの URL です(CloudFront ドメイン名を使用)。image.jpgimages ディレクトリにあります。URL 内のオブジェクトへのパスは、HTTP サーバーまたは Amazon S3 バケットのオブジェクトへのパスに一致する必要があります。

      http://d111111abcdef8.cloudfront.net/images/image.jpg

    • 以下の CloudFront URL には、クエリ文字列が含まれます。

      http://d111111abcdef8.cloudfront.net/images/image.jpg?size=large

    • 以下の CloudFront URL は、ウェブディストリビューション内のオブジェクトの URL です。両方の URL で代替ドメイン名が使用されており、2 番目の URL にはクエリ文字列が含まれています。

      http://www.example.com/images/image.jpg

      http://www.example.com/images/image.jpg?color=red

    • 以下の CloudFront URL は、代替ドメイン名と HTTPS プロトコルを使用するウェブディストリビューション内のオブジェクトの URL です。

      https://www.example.com/images/image.jpg

    以下の例は、RTMP ディストリビューションの場合の、2 つの異なるビデオ形式(MP4 と FLV)のオブジェクトの例です。

    • MP4mp4:sydney-vacation.mp4

    • FLVsydney-vacation

    • FLVsydney-vacation.flv

    Note

    .flv ファイルの場合、.flv ファイル名拡張子を含めるかどうかは、使用するプレーヤーによって決まります。MP3 オーディオファイルまたは H.264/MPEG-4 ビデオファイルを供給するには、ファイル名の先頭にプレフィックス mp3: または mp4: を追加することが必要になる場合があります。メディアプレーヤーによっては、プレフィックスを自動で追加するように構成できます。メディアプレーヤーがファイル拡張子のないファイル名の指定を要求する場合もあります(例: sydney-vacation.mp4 ではなく sydney-vacation)。

    2 ?

    ? は、クエリ文字列パラメーターがベース URL の後に続いていることを示します。独自のクエリ文字列パラメーターがない場合も ? を含めます。

    3 クエリ文字パラメーター(ある場合)&

    この値はオプションです。独自のクエリ文字列パラメーター、たとえば次のクエリ文字列パラメーターを追加すると仮定します。

    color=red&size=medium

    この場合、?2 を参照)の後、かつ Policy パラメーターの前にこのパラメーターを追加します。特定のまれな状況では、Key-Pair-Id の後にクエリ文字列パラメーターを配置する必要があります。

    Important

    パラメーターに PolicySignature、または Key-Pair-Id という名前を付けることはできません。

    独自のパラメーターを追加する場合は、最後のパラメーターを含め、各パラメーターの後に & を付加します。

    4 Policy=ポリシーステートメントの base64 エンコードバージョン

    空白文字が削除され、base64 エンコードされた、JSON 形式のポリシーステートメント。詳細については、「カスタムポリシーを使用する署名付き URL のポリシーステートメントの作成」を参照してください。

    ポリシーステートメントは、署名付き URL でユーザーに与えられるアクセス権限を制御します。これには、オブジェクトの URL(ウェブディストリビューションの場合)またはストリーム名(RTMP ディストリビューションの場合)、有効期限の日時、URL が有効になるオプション日時、およびオブジェクトへのアクセスが許可されるオプションの IP アドレスや IP アドレス範囲が含まれます。

    5 Signature= ハッシュ化および署名されたバージョンのポリシーステートメント

    ハッシュ化され、署名された base64 エンコードバージョンの JSON ポリシーステートメント。詳細については、「カスタムポリシーを使用する署名付き URL の署名の作成」を参照してください。

    6 &Key-Pair-Id=ポリシーステートメントの署名に使用するキーペアに対する有効な CloudFront キーペア ID

    アクティブな CloudFront キーペアの ID(APKA9ONS7QCOWEXAMPLE など)。CloudFront キーペア ID は、署名付き URL の検証に使用するパブリックキーを CloudFront に指示します。CloudFront は、署名内の情報をポリシーステートメント内の情報と比較して、URL が改ざんされていないことを確認します。

    CloudFront 署名付き URL に含めるキーペア ID は、いずれかの信頼された署名者の有効なキーペア ID である必要があります。

    • ウェブディストリビューション – キーペアは、該当のキャッシュ動作に対するいずれかの信頼された署名者の AWS アカウントに関連付けられる必要があります。

    • RTMP ディストリビューション – キーペアは、ディストリビューションに対するいずれかの信頼された署名者の AWS アカウントに関連付けられる必要があります。

    詳細については、「署名付き URL と署名付き Cookie(信頼された署名者)の作成が可能な AWS アカウントの指定」を参照してください。

    署名付き URL をプログラムで生成しており、CloudFront キーペアを更新している間にキーペアを無効にした場合、いずれかの信頼された署名者の新しい有効なキーペアを使用するようにアプリケーションを更新する必要があります。署名付き URL を手動で生成している場合は、新しい署名付き URL を作成する必要があります。キーペアの更新の詳細については、「CloudFront キーペアを更新する」を参照してください。

ウェブディストリビューションの署名付き URL の例。

1http://d111111abcdef8.cloudfront.net/image.jpg 2? 3color=red&size=medium& 4Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA 6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ 29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiI yMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQ VdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp 7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo 5&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~ -ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmat EXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6 6&Key-Pair-Id=APKA9ONS7QCOWEXAMPLE

RTMP ディストリビューションの署名付き URL の例。

1videos/mediafile.flv 2? 3color=red&size=medium& 4Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA 6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ 29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiI yMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQ VdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp 7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo 5&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~ -ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmat EXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6 6&Key-Pair-Id=APKA9ONS7QCOWEXAMPLE

カスタムポリシーを使用する署名付き URL のポリシーステートメントの作成

カスタムポリシーのポリシーステートメントを作成するには、以下の手順を実行します。さまざまな方法でオブジェクトへのアクセスを制御するポリシーステートメントのいくつかの例については、「カスタムポリシーを使用する署名付き URL のポリシーステートメントの例」を参照してください。

カスタムポリシーを使用する署名付き URL のポリシーステートメントを作成するには

  1. 以下の JSON 形式を使用してポリシーステートメントを構築します。詳細については、「カスタムポリシーを使用する署名付き URL のポリシーステートメントで指定する値」を参照してください。

    {
       "Statement": [
          {
             "Resource":"URL or stream name of the object",
             "Condition":{
                "DateLessThan":{"AWS:EpochTime":required ending date and time in Unix time format and UTC},
                "DateGreaterThan":{"AWS:EpochTime":optional beginning date and time in Unix time format and UTC},
                "IpAddress":{"AWS:SourceIp":"optional IP address"}
             }
          }
       ]
    }

    次の点に注意してください。

  2. ポリシーステートメントからすべての空白文字(タブと改行文字を含む)を削除します。アプリケーションコード内の文字列にエスケープ文字を含めることが必要になる場合があります。

  3. MIME base64 エンコーディングを使用してポリシーステートメントを Base64 エンコードします。詳細については、『RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies』の「Section 6.8, Base64 Content-Transfer-Encoding」を参照してください。

  4. URL クエリ文字列内の無効な文字を有効な文字で置き換えます。次の表に無効な文字と有効な文字を示します。

    無効な文字(置換元)有効な文字(置換先)

    +

    -(ハイフン)

    =

    _(下線)

    /

    ~(チルダ)

  5. 結果の値を署名付き URL の Policy= の後に付加します。

  6. ポリシーステートメントのハッシュ化、署名、および base64 エンコードを行って、署名付き URL の署名を作成します。詳細については、「カスタムポリシーを使用する署名付き URL の署名の作成」を参照してください。

カスタムポリシーを使用する署名付き URL のポリシーステートメントで指定する値

カスタムポリシーのポリシーステートメントを作成する場合、以下の値を指定します。

リソース

指定する値は、ウェブディストリビューションまたは RTMP ディストリビューションの署名付き URL を作成しているかどうかによって異なります。

Note

Resource の日付形式は 1 つだけ指定できます。

ウェブディストリビューション(オプション、ただし推奨)

クエリ文字列(ある場合)が含まれるベース URL。ただし、CloudFront の PolicySignature、および Key-Pair-Id パラメーターが除外されます。次に例を示します。

http://d111111abcdef8.cloudfront.net/images/horizon.jpg?size=large&license=yes

Caution

ウェブディストリビューションで Resource パラメーターを省略した場合、ユーザーは、署名付き URL の作成に使用するキーペアに関連付けられたあらゆるディストリビューションに関連付けられるすべてのオブジェクトにアクセスできます。

次の点に注意してください。

  • プロトコル – 値は http://https://、または * で始まっている必要があります。

  • クエリ文字列パラメーター – クエリ文字列パラメーターがない場合は、疑問符を省略します。

  • ワイルドカード – 0 個以上の文字に一致するワイルドカード文字(*)、または 1 つの文字に一致するワイルドカード文字(?)を使用できます。文字列のどこにでも含めることができます。次に例を示します。この値は、

    http*://d111111abcdef8.cloudfront.net/*game_download.zip*

    たとえば、次のすべてのオブジェクトを含みます。

    • http://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes

    • https://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes

    • http://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp

    • https://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp

  • 代替ドメイン名 – URL で代替ドメイン名(CNAME)を指定する場合は、ウェブページまたはアプリケーション内のオブジェクトを参照するときに代替ドメイン名を指定する必要があります。オブジェクトの Amazon S3 URL を指定しないでください。

RTMP ディストリビューション

ストリーム名のみを含めます。たとえば、ストリーミングビデオの完全 URL が次のような URL であったとします。

rtmp://s5c39gqb8ow64r.cloudfront.net/videos/cfx/st/mp3_name.mp3

この場合、Resource には次の値を使用します。

videos/mp3_name

mp3:mp4: などのプレフィックスを含めないでください。また、使用するプレーヤーによっては、Resource の値からファイル拡張子を省略することが必要になる場合があります。たとえば、sydney-vacation.flv の代わりに sydney-vacation を使用することが必要になる場合があります。

DateLessThan

URL の有効期限切れ日時。Unix 時間形式(秒単位)および協定世界時(UTC)で指定します。値を引用符で囲まないでください。UTC の詳細については、「RFC 3339、インターネットでの日付と時間: タイムスタンプ」(http://tools.ietf.org/html/rfc3339)を参照してください。

たとえば、UTC の 2013 年 1 月 1 日午前 10 時 00 分は、Unix 時間形式の 1357034400 に変換されます。

これは、Condition セクションにおける唯一の必須パラメーターです。CloudFront は、プライベートコンテンツにユーザーが永久的にアクセスできないようにこの値を要求します。

詳細については、「CloudFront が署名付き URL 内の有効期限切れ日時を確認するタイミング」を参照してください。

DateGreaterThan(オプション)

オプションの URL 開始日時。Unix 時間形式(秒単位)および協定世界時(UTC)で指定します。ユーザーは指定された日時よりも前にオブジェクトにアクセスすることを許可されません。値を引用符で囲まないでください。

IpAddress(オプション)

GET リクエストを実行するクライアントの IP アドレス。次の点に注意してください。

  • オブジェクトへのアクセスをすべての IP アドレスに許可するには、IpAddress パラメーターを省略します。

  • IP アドレスまたは IP アドレス範囲を 1 つ指定できます。たとえば、2 つの別々の範囲のどちらかにクライアントの IP アドレスが入っている場合にアクセスを許可するようなポリシーを設定することはできません。

  • 1 つの IP アドレスからのアクセスを許可するには、以下のように指定します。

    "IPv4 IP アドレス/32"

  • IP アドレス範囲は標準の IPv4 CIDR 形式(192.0.2.0/24 など)で指定する必要があります。詳細については、RFC 4632、クラスレスインタードメインルーティング (CIDR): インターネットアドレスの割り当てと集約計画 (http://tools.ietf.org/html/rfc4632) を参照してください。

    Important

    IPv6 フォーマットの IP アドレス (例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334) はサポートされていません。

    IpAddress を含むカスタムポリシーを使用する場合、ディストリビューションで IPv6 は有効にしません。一部のコンテンツへのアクセスを IP アドレスによって制限し、他のコンテンツで IPv6 リクエストをサポートする場合、2 つのディストリビューションを作成します。詳細については、トピック「ウェブディストリビューションを作成または更新する場合に指定する値」の「IPv6 を有効にする」を参照してください。

カスタムポリシーを使用する署名付き URL のポリシーステートメントの例

以下のポリシーステートメントの例は、特定のオブジェクト、ディレクトリ内のすべてのオブジェクト、またはキーペア ID に関連付けられたすべてのオブジェクトへのアクセスを制御する方法を示しています。また、この例は、個々の IP アドレスまたは IP アドレス範囲からのアクセスを制御する方法、および指定された日時以降にユーザーが署名付き URL を使用することを禁止する方法も示しています。

この例のいずれかをコピーして貼り付ける場合は、すべての空白文字を削除し(タブと改行文字を含む)、適用可能な値を独自の値で置き換えて、右中かっこ(})の後に改行文字を含めます。

詳細については、「カスタムポリシーを使用する署名付き URL のポリシーステートメントで指定する値」を参照してください。

ポリシーステートメントの例: IP アドレス範囲から 1 つのオブジェクトにアクセスする

次の署名付き URL 内のカスタムポリシーの例は、UTC の 2013 年 1 月 1 日午前 10 時 00 分まで、範囲 192.0.2.0/24 の IP アドレスから、ユーザーがオブジェクト http://d111111abcdef8.cloudfront.net/game_download.zip にアクセスできることを指定しています。

{
   "Statement": [
      {
         "Resource":"http://d111111abcdef8.cloudfront.net/game_download.zip",
         "Condition":{
            "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"},
            "DateLessThan":{"AWS:EpochTime":1357034400}
         }
      }
   ]
}

ポリシーステートメントの例: IP アドレス範囲からディレクトリ内のすべてのオブジェクトにアクセスする

以下のカスタムポリシーの例では、Resource パラメーターの * ワイルドカード文字が示すとおり、training ディレクトリ内のあらゆるオブジェクトを対象とする署名付き URL を作成できます。UTC の 2013 年 1 月 1 日午前 10 時 00 分まで、範囲 192.0.2.0/24 の IP アドレスから、ユーザーはオブジェクトにアクセスできます。

{ 
   "Statement": [
      { 
         "Resource":"http://d111111abcdef8.cloudfront.net/training/*", 
         "Condition":{ 
            "IpAddress":{"AWS:SourceIp":"192.0.2.0/24"}, 
            "DateLessThan":{"AWS:EpochTime":1357034400}
         }
      }
   ] 
}

このポリシーを使用する各署名付き URL には、たとえば次のように、特定のオブジェクトを識別するベース URL が含まれます。

http://d111111abcdef8.cloudfront.net/training/orientation.pdf

ポリシーステートメントの例: キーペア ID に関連付けられたすべてのオブジェクトに 1 つの IP アドレスからアクセスする

以下のカスタムポリシーの例では、Resource パラメーターの * ワイルドカード文字が示すとおり、あらゆるディストリビューションに関連付けられたあらゆるオブジェクトを対象とする署名付き URL を作成できます。ユーザーは IP アドレス 192.0.2.10/32 を使用する必要があります。(CIDR 表記の値 192.0.2.10/32 は 1 つの IP アドレス 192.0.2.10 を参照します)。オブジェクトは、UTC の 2013 年 1 月 1 日午前 10 時 00 分から UTC の 2013 年 1 月 2 日午前 10 時 00 分まで使用できます。

{ 
   "Statement": [
      { 
         "Resource":"http://*",
         "Condition":{ 
            "IpAddress":{"AWS:SourceIp":"192.0.2.10/32"},
            "DateGreaterThan":{"AWS:EpochTime":1357034400},
            "DateLessThan":{"AWS:EpochTime":1357120800}
         } 
      }
   ] 
}

このポリシーを含める各署名付き URL には、たとえば次のように、特定の CloudFront ディストリビューション内の特定のオブジェクトを識別するベース URL が含まれます。

http://d111111abcdef8.cloudfront.net/training/orientation.pdf

署名付き URL にはキーペア ID も含まれます。キーペア ID は、ベース URL に指定されたディストリビューション(d111111abcdef8.cloudfront.net)内の信頼された署名者に関連付けられる必要があります。

カスタムポリシーを使用する署名付き URL の署名の作成

カスタムポリシーを使用する署名付き URL の署名は、ハッシュ化、署名、および base64 エンコードが行われたバージョンのポリシーステートメントです。カスタムポリシーの署名を作成するには、該当する手順を実行します。選択するバージョンは、ディストリビューションの種類(ウェブまたは RTMP)によって決まります。また、RTMP ディストリビューションの場合は、使用するメディアプレーヤー(Adobe Flash Player または別のメディアプレーヤー)によって決まります。

ポリシーステートメントのハッシュ化、署名、およびエンコードを行う方法の詳細および例については、以下の各資料を参照してください。

オプション 1: カスタムポリシーを使用して、ウェブディストリビューションまたは RTMP ディストリビューション(Adobe Flash Player を使用しない)の署名を作成する

  1. カスタムポリシーを使用する署名付き URL のポリシーステートメントを作成するには」の手順で作成した JSON ポリシーステートメントを、SHA-1 ハッシュ関数と RSA を使用してハッシュ化し、署名します。空白文字が含まれていないが、まだ base64 エンコードされていないバージョンのポリシーステートメントを使用します。

    ハッシュ関数で必要とされるプライベートキーについては、該当する有効な信頼済み署名者に関連付けられたプライベートキーを使用します。

    Note

    ポリシーステートメントをハッシュ化および署名するための方法は、プログラミング言語およびプラットフォームによって異なります。サンプルコードについては、「署名付き URL の署名を作成するためのコード例」を参照してください。

  2. ハッシュ化および署名された文字列から、空白文字(タブや改行文字を含む)を削除します。

  3. MIME base64 エンコーディングを使用して文字列を Base64 エンコードします。詳細については、『RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies』の「Section 6.8, Base64 Content-Transfer-Encoding」を参照してください。

  4. URL クエリ文字列内の無効な文字を有効な文字で置き換えます。次の表に無効な文字と有効な文字を示します。

    無効な文字(置換元)有効な文字(置換先)

    +

    -(ハイフン)

    =

    _(下線)

    /

    ~(チルダ)

  5. 結果の値を署名付き URL の &Signature= の後に付加し、「カスタムポリシーを使用して署名付き URL を作成するには」に戻って、署名付き URL の各パートの連結を終了します。

オプション 2: カスタムポリシーを使用して RTMP ディストリビューションの署名を作成する(Adobe Flash Player)

  1. カスタムポリシーを使用する署名付き URL のポリシーステートメントを作成するには」の手順で作成した JSON ポリシーステートメントを、SHA-1 ハッシュ関数と RSA を使用してハッシュ化し、署名します。空白文字が含まれていないが、まだ base64 エンコードされていないバージョンのポリシーステートメントを使用します。

    ハッシュ関数で必要とされるプライベートキーについては、該当する有効な信頼済み署名者に関連付けられたプライベートキーを使用します。

    Note

    ポリシーステートメントをハッシュ化および署名するための方法は、プログラミング言語およびプラットフォームによって異なります。サンプルコードについては、「署名付き URL の署名を作成するためのコード例」を参照してください。

  2. ハッシュ化および署名された文字列から、空白文字(タブや改行文字を含む)を削除します。

    ストリーム名がウェブページから渡される場合は、引き続きステップ 3 に進みます。

    ストリーム名がウェブページから渡されない場合は、この手順の残りをスキップします。たとえば、ストリーム名を Adobe Flash .swf ファイル内からフェッチする独自のプレーヤーを作成した場合は、この手順の残りをスキップします。

  3. MIME base64 エンコーディングを使用して文字列を Base64 エンコードします。詳細については、『RFC 2045, MIME (Multipurpose Internet Mail Extensions) Part One: Format of Internet Message Bodies』の「Section 6.8, Base64 Content-Transfer-Encoding」を参照してください。

  4. URL クエリ文字列内の無効な文字を有効な文字で置き換えます。次の表に無効な文字と有効な文字を示します。

    無効な文字(置換元)有効な文字(置換先)

    +

    -(ハイフン)

    =

    _(下線)

    /

    ~(チルダ)

  5. Adobe Flash Player の一部のバージョンでは、?、=、および & を URL エンコードすることが要求されます。使用している Adobe Flash Player のバージョンがこの文字の置換を要求するかどうかについては、Adobe ウェブサイトを参照してください。

    使用している Adobe Flash Player のバージョンで、?、=、および & の URL エンコードが要求されない場合は、このステップをスキップしてステップ 6 に進みます。

    使用している Adobe Flash Player のバージョンがこれらの文字の URL エンコードを要求する場合は、次の表に示されたとおりに文字を置き換えます。(= については、前のステップですでに置き換えられています)。

    無効な文字(置換元)URL エンコード(置換先)

    ?

    %3F

    &

    %26

  6. 結果の値を署名付き URL の &Signature= の後に付加し、「カスタムポリシーを使用して署名付き URL を作成するには」に戻って、署名付き URL の各パートの連結を終了します。