はじめに
EICAR のテストウイルスが HTTP でダウンロードできなくなったので、Amazon S3 の静的ウェブサイトを使ってテストウイルスのダウンロード環境を作ってみました。
(以前 Lambda 版を公開していましたが、今回は CloudShell 版です)
CloudShell にて
S3 バケットを作成します。
$ aws s3 mb s3://[バケット名]
公開設定を行います。
$ aws s3api put-public-access-block --bucket [バケット名] --public-access-block-configuration "BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=false,RestrictPublicBuckets=false"
確認します。
$ aws s3api get-public-access-block --bucket [バケット名]
以下の結果であればOK
{
"PublicAccessBlockConfiguration": {
"BlockPublicAcls": false,
"IgnorePublicAcls": false,
"BlockPublicPolicy": false,
"RestrictPublicBuckets": false
}
}
バケットポリシーを設定し匿名ユーザーへアクセス許可します。
まずは CloudShell のローカルで json ファイルを作成します。
$ cat << EOS > bucket-policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[バケット名]/*"
}
]
}
EOS
作成したjsonファイルを元にS3バケットへポリシー適用します。
$ aws s3api put-bucket-policy --bucket [バケット名] --policy file://bucket-policy.json
必要ないと思いますが、index ファイルの設定も行っておきます。
$ aws s3 website s3://[バケット名] --index-document index.html
CloudShell のローカルにテストウイルスのファイルを作成します。
$ cat << EOS > eicar.com
X5O!P%@AP[4\PZX54(P^)7CC)7}\$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!\$H+H*
EOS
作成したテストウイルスを S3 にアップロードします。
$ aws s3 cp eicar.com s3://[バケット名]/
S3 にアップロードできたか確認します。
$ aws s3 ls [バケット名]
2021-06-10 00:00:01 69 eicar.com
curl コマンドで HTTP アクセスできるか確認します。
$ curl http://[バケット名].s3-website-ap-northeast-1.amazonaws.com/eicar.com
※URLのリージョン部分は環境にあわせて読み替えてください
以上でテストウイルスのダウンロード環境構築は完了です。
実際に利用する際は curl コマンドで確認した URL を使ってアクセスしてください。