Rubyで、アクセスの許可をするには、AWS::EC2::SecurityGroup#authorize_ingressを使う。ICMPを許可する場合、大抵はすべてを許可するので、次のようになる。ALLで設定するのと同等となる。failedを設定してみたい。Consoleから設定してみると、次のようになる。Rubyで参照してみる。Codeが、Rangeオブジェクトの最初と最後に設定されているらしい。length"ではどうか。Rubyから先ほどと同じように参照してみると、次のような結果が帰ってくる。icmpということで、12..2というRangeオブジェクトが設定されていることが確認できる。Rubyで設定してみるとどうなるか。icmpなぜか0..0になってしまう。Consoleで見ると、以下のようになってしまう。動作がおかしいと思ったので、コードを確認してみたところ、次のようになっているのを見つけた。Array(ports).first.to_i..Array(ports).last.to_iendこれだと、12..2を渡すと、Array(12..2)になってしまい、空の配列が帰ってくることになり、nil.to_iが実行され、0になってしまう、ということのようだ。ICMPに個別の設定をしていると、セキュリティグループをコピーするコードに、さらに問題が発生するということのようだ。ファイルへのアクセスを監査するLinuxでは、auditdというシステム監査のためのdaemonが動作している。auditdで、特定のファイルにアクセスがあった場合に、監査ログに記録をするというセキュリティ要件がでてきたため、下記のように設定した。設定ファイルは、/etc/audit/audit.rulesで、このファイルの最後に次の設定を追記した。/path/to/file-wの後に、アクセスがあったことを記録したいファイルのフルパスを指定すれば良い。これで、このファイルにアクセスが合ったときに、/var/log/audit/audit.logに、下記のような記録が残る。S3のバケットポリシーでIPアドレスによるアクセス制限S3のオブジェクトにアクセスする際に、特定のIPアドレスからのみ許可したいという場合には、下記のようなポリシーを作成して、バケットに設定すれば良い。]}この例だと、bucketnameバケット以下のすべてのオブジェクトに対して、198.51.100.0/24からのみアクセスを許可するという設定となる。Authenticationを使うでは、ひとつのアカウントにひとつのデバイスを登録してみたのだが、同時に複数のデバイスを登録したらどうなるのかが気になったので、試してみた。その結果が、下記の写真。写真を見ると、二台の別のデバイスに同じ数字が表示されていることが分かる(それぞれ下の数字が同じ)。登録時に表示されるQRコードを、複数のデバイスで読みこめば、MFAで一つのアカウントに複数のデバイスを使うことができるようだ。この時のQRコードを保存しておけば、いつでも登録することもできるので、QRコードを保存しておくとセキュリティは低下するが、デバイスが失われた際のリカバリはやりやすくなる。デバイスを失くしたときは、すぐにデバイスを無効にするべきなのだが、デバイスを失くしたことでログインできなくなってしまう。この時、保存していたQRコードから別のデバイスに登録することで、ログインできるようになる。ログインした後にすぐにデバイスを無効にするのが良いだろう。2.3.3-p222。