[アップデート]AWS Transfer FamilyのSFTP/AS2コネクタにアカウント共通の固定IPが割り当てられるようになりました

2024.01.15

初めに

2023/07頃にTransfer Family側が主体でSFTP/AS2通信を行うAS2/SFTPコネクタがリリースされました。

上記時点では割り当てられるIPが明確でなくどのように許可するべきかの情報が見当たらない状態となっておりSFTPサーバ側でIPによるアクセス制御が難しいものとなっておりました。

こちらの件について先月の話となりますがAWSからアカウント単位で共通の固定IPが利用できるようになる旨の通知が来ておりました。

いつもお世話になっております。

AWS Transfer Family は、2024 年 1 月 11 日から SFTP および AS2 コネクタに固定 IP アドレスを導入します。今回のローンチで、お客様の AWS アカウント内のコネクタには固定の共有 IP アドレスセットが割り当てられ、この IP アドレスは、この AWS アカウントで同じプロトコルを使用するすべてのコネクタで共有されます。また、この共有 IP アドレスを使用して、リモートサーバーのファイアウォールで接続を許可リストに追加して、シームレスで信頼できる接続を実現できます。

この変更の結果、AWS Transfer Family コネクタの現在の IP アドレスは 1 回限り変更されます。リモートサーバー上でコネクタの IP アドレスを既に許可リストに登録している場合は、コネクタがそれらのサーバーに接続できるように、許可リストを新しい IP アドレスで更新する必要があります。コネクタの現在の IP アドレスを許可リストに登録する目的で使用していない場合は、お客様側でアクションを行う必要はありません。

AWS Health Dashboard [1] の [影響を受けるリソース] タブに、影響を受けるコネクタと割り当てられた静的 IP アドレスのリストが表示されます。このタブには、2023 年 12 月 12 日現在のコネクタとそれらに割り当てられた固定 IP アドレスのリストが表示されます。2024 年 1 月 12 日以降、同じプロトコルを使用して作成されたすべてのコネクタは、この AWS アカウントに割り当てられた静的 IP アドレスを共有します。

2024/01/12時点で確認した時点では割り当てられている固定IPは通知自体から確認はできるもの実際のサービス上確認できないとなっておりましたが、本日DescribeConnectorおよびDescribeServerのAPIに更新が入っており割り当てられたIPアドレスが確認できるようになりました。

通知の内容を見るに2023/12/12時点でコネクタに固定のIPを割り当てられていたような記載はあるので、今回のアップデートは「コネクタに固定のIPが割り当てられるようになった」のではなく「アカウント単位でコネクタの固定IPが管理されるようになった」が正しいのかもしれません。

ただ本アップデート以前ではユーザ側で割り当てられているIPを確認する術がコネクタ側に存在せず、サーバ側で接続のログを確認するしかなく固定の記載も見当たらなかったため感覚的には固定IPが利用されるようになったに近いものがあるかもしれません。

2024/01/19追記

翌日の最新情報で告知されていましたが静的IPが割り当てられるようになったという形になりそうです。

IPの確認

固定IPは各コネクタの詳細もしくは作成時に確認することができます。

今回のローンチで、お客様の AWS アカウント内のコネクタには固定の共有 IP アドレスセットが割り当てられ、この IP アドレスは、この AWS アカウントで同じプロトコルを使用するすべてのコネクタで共有されます。

なお表示自体はコネクタ単位で行われますが、前述に記載の通知の通りアカウント内でIPが共有されており新たなコネクタを作成してもIPアドレス自体は共通となるようです。

実際に先ほどと違うコネクタを作成しましたが同じIPが割り当てられていることも確認できました。
(マスクかけている関係で画像上は同じレンジのものくらいしか確認できないですが...)

AWS CLIから確認する場合はdescribe-connectorを利用します。

% aws-cli-latest/bin/aws --version
aws-cli/1.32.19 Python/3.11.6 Darwin/22.6.0 botocore/1.34.19
 % aws-cli-latest/bin/aws transfer describe-connector --connector-id c-eeaxxxxx
{
    "Connector": {
        "Arn": "arn:aws:transfer:ap-northeast-1:xxxxx:connector/c-eeaxxxxx",
        "ConnectorId": "c-eeaxxxxx",
        "Url": "sftp://xxx",
        "AccessRole": "arn:aws:iam::xxxxx:role/sample-s3-connector-role",
        "LoggingRole": "arn:aws:iam::xxxxx:role/sample-transfer-connector-to-log",
        "Tags": [],
        "SftpConfig": {
            "UserSecretId": "arn:aws:secretsmanager:ap-northeast-1:xxxxx:secret:aws/transfer/xxxxx",
            "TrustedHostKeys": [
                "xxxxxx"
            ]
        },
        "ServiceManagedEgressIpAddresses": [
            "52.196.xxx",
            "52.194.xxx",
            "13.114.xxx"
        ]
    }
}

なおChangelogを見る限v1系では1.32.18以降のみで確認可能で、それ以前は未対応のため確認ができません。

v2系は現時点の最新バージョンの2.15.10のChangeを見る限りはまだ対応されていなさそうです。

なおAWSの提供するIPアドレスの範囲を確認してみましたが現時点(2024/01/15)ではこれらのIPはEC2に分類されていました。

{
...
    {
      "ip_prefix": "52.196.0.0/14",
      "region": "ap-northeast-1",
      "service": "EC2",
      "network_border_group": "ap-northeast-1"
    },
    {
      "ip_prefix": "52.194.0.0/15",
      "region": "ap-northeast-1",
      "service": "AMAZON",
      "network_border_group": "ap-northeast-1"
    },
    {
      "ip_prefix": "13.112.0.0/14",
      "region": "ap-northeast-1",
      "service": "EC2",
      "network_border_group": "ap-northeast-1"
    }
...
}

IPv4の課金には含まれない?

SFTPコネクタ作成後にPublic IP Insightsを確認してみましたが今回コネクタで利用されているIPは含まれていないものとなりました。

今回のタイミングでIPAM作成し検出後に確認しているためまだ検出の対象となっていない可能性も0ではないのでご注意ください。

終わりに

特にSFTPは非常によく使われる通信方式で攻撃の対象ともなりやすいのでIPによる絞り込みができるのは非常に良いアップデートはないでしょうか。
今回はSFTP側のみを紹介させていただきましたがAS2も同様に対応されています。

EC2のように好きなEIPを割り当てたりコネクタ毎に異なるIPを利用するといった柔軟性が高いものではないため利用ケースにマッチするかどうかはその点を含めてご検討いただくのが良いものとはなります。