カテゴリー: tech

  • S3 のバケットを誤って公開した場合の検知方法

    S3 のバケットを誤って公開してしまった時、どのように検知するかをまとめた。

    案は2つ

    1. Lambda を呼び出して、 S3 バケットを保護する CloudWatch Events ルールを設定
    2. S3 のオブジェクトレベルのログを有効にして、 CloudTrail でパブリック読み取りアクセス許可を持つ PutObject API が検出されたとき、 SNS に通知するような CloudWatch イベントを作る。

    この2つの方法は取ることができるが、単純に案1 の s3 から Lambda をトリガーしてチェックを行うのは実装は簡単そう。

    しかし、やろうと思えば案2 の仕組みをつくることもできる。

  • AWS CLI で CloudWatch logs を見る

    CloudWatch logs を確認したいが、AWS コンソール に入らずとも CLI で確認することができる。

    $ aws --profile stg logs get-log-events --log-group-name /ecs/hogehoge --log-stream-name ecs/stream --output text
    
    EVENTS  1628662114657   COPY FROM S3.   1628662110415
    EVENTS  1628662114657   logs ......       1628662111623
    EVENTS  1628662404609   running...................................................................................................................................................................................................................................................................................................      1628662401927
    EVENTS  1628662404609   処理時間:289.469252秒  1628662401927
    

    1行目は EVENTS

    2行目は タイムスタンプ

    3行目にログが記載されている。

    https://docs.aws.amazon.com/cli/latest/reference/logs/get-log-events.html

  • s3 からファイルコピーする際の download: を表示させない

    大量のファイルをコピーしようとすると、標準出力が s3 からdownload しているという標準出力で埋め尽くされる

    % aws s3 cp s3://sumito-hoge/11.change.csv hogehoge
    download: s3://sumito-hoge/11.change.csv to ./hogehoge

    これを表示させないためには --quiet オプションを使う

    % aws s3 cp s3://sumito-hoge/11.change.csv hogehoge --quiet
    
    
    ファイルはきちんとコピーされている
    
    ls -l hogehoge*                                                                                                                        
    -rw-r--r--  1 sumito.tsukada  wheel  5774  8 11 12:40 hogehoge
    

  • 多数のクライアントから EFS を利用する際 性能劣化を回避する

    EFS は

    • 汎用 I/O パフォーマンスモード
    • 最大 I/O パフォーマンスモード

    という2種類のモードがある。

    それぞれ整理する。

    汎用 I/O パフォーマンスモード(General Purpose performance mode)

    EFS のデフォルト値

    レイテンシーが低く、ワークロードがレイテンシーの影響を受けやすい場合に適している。

    Webサーバ含め、一般的なファイルシステムなどレイテンシーに敏感なユースケースに最適。

    最大 I/O パフォーマンスモード(Max I/O performance mode)

    ファイルシステムオペレーションの制限はない。

    多数のクライアントから EFS を利用する際 性能劣化を回避する際はこちらを選ぶ。

    ただし、ファイルのメタデータを操作する際のレイテンシーが若干高くなるというトレードオフがある。

    ユースケースとして、高度に並列化されたアプリケーションやワークロードには、このモードが有効になる。

    参考情報

    https://docs.aws.amazon.com/efs/latest/ug/performance.html

  • S3 で自分の暗号化キーを使ってサーバーサイドエンクリプトをする

    Tips

    自分のキーを持ち込みたい場合、

    SSE-C を使うことで独自の暗号化キーを使うことが可能。

    参考情報

    https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html

  • DDoS 攻撃への対処

    さまざまな対処法がある。

    Amazon Route 53 による制御

    • シャッフルシャーディング
    • anycast ルーティング

    DDoS 攻撃を受けていても連携してエンドユーザーがアプリケーションにアクセスできるようにする2つの機能がある。 

    AWS Shield AdvancedとAWS WAF

    • DDoS攻撃の緩和
    • レイヤー7での保護

    AWS WAF

    カスタマイズ可能なウェブセキュリティルールを定義することで、ウェブアプリケーションに対するどのトラフィックを許可またはブロックするかを制御できる。

    SQL インジェクションまたはクロスサイトスクリプティングに加え、カスタマイズされたルールを使うことができる

    AWS Shield Advanced

    CloudWatch でのリアルタイムの通知によって、DDoS 攻撃に対する完全な可視性が可能になる。

    AWS Shield Standard

    レイヤー3/レイヤー4攻撃を軽減できるが、詳細なリアルタイム通知や可視化機能が提供していない。

  • 誤って割り当てた STS のアクセス権を剥奪するには

    一時認証によって付与されたアクセス権を取り消す方法を考える。

    STSによって間違った権限を付与してしまった場合、

    IAMダッシュボードにおいて、ユーザーに提供した特定のロールを選択し、取り消し設定を利用してSTSの許可ロールを取り消すことができる。

    STSなどの一時的な認証情報をユーザーに付与したとき、ユーザーが長いセッションの有効期間 (12 時間など) を使用して AWS マネジメントコンソール にアクセスできるようにすると、時間内であれば一時認証情報がすぐに期限切れになることはない。

    対処法

    IAMダッシュボードにおいて、ユーザーに提供した特定のロールを選択する。

    取り消し設定を利用して許可ロールを取り消す。

  • AWS Transit Gateway について

    概要

    AWS Transit Gateway を使うことで多数のVPCを管理することができるようになる。

    VPC ピアリングをする必要がなくなり、

    • VPC
    • オンプレのデータセンター
    • オフィス

    それぞれに単一の接続を構築して管理するだけで良くなる。

    Transit Gateway がハブの役割を果たし、トラフィックがスポークのように接続されたネットワーク間をどのようにルーティングするか等をすべて制御する。

    AWS Transit Gateway が提供するもの

    統計とログを VPC フローログ、 CloudWatch で参照できる。

    AWS Transit Gateway で VPC フローログを有効にすることができる。

    CloudWatch を使用してVPC <–> VPN 接続間の

    • 帯域幅の使用量
    • パケットフロー数
    • パケットドロップ数

    などが取得ができる。

    トランジットゲートウェイをファイアウォールまたは IPS(侵入防止システム)に接続したり、ネットワークのすべての入出力トラフィックを処理する単一の VPC を作成することもできる。

    AWS Transit Gateway network manager は、ネットワークトポロジーの変更、ルーティングの更新、接続ステータスの更新に関する組み込みのイベント通知を提供します。

    参考情報

    https://dev.classmethod.jp/articles/transit-gateway-vpc/

  • オンプレ⇄AWS Storage Gateway 間のセキュアな接続について

    AWS Storage Gateway はCHAPを使用して、ゲートウェイと iSCSI イニシエータの間の認証を行うことができる。

    CHAP を設定するには、AWS Storage Gateway コンソールと、ターゲットへの接続に使用される iSCSI イニシエータソフトウェアの両方で、設定を行う必要がある。

    Storage Gateway では相互 CHAP が使用され、イニシエータがターゲットを認証するときに、ターゲットもイニシエータを認証する。

    セキュアな iSCSI接続を実施するために必要なこと

    • CHAP(Challenge Handshake Authentication Protocol)を構成する
    • その上で、iSCSIとイニシエーター接続を認証する

    iSCSI イニシエーターとは

    iSCSI によって接続された機器に対する指示を出す部分

    参考情報

    https://wa3.i-3-i.info/word12375.html

  • VMware のインスタンスを AWS に移行する

    ダウンタイムを許容する際の移行方法について

    AWS Server Migration Service を使った移行

    AWS Server Migration Serviceを利用して、物理マシンのみならずVMware vSphereインフラストラクチャからAmazon EC2に仮想マシンをインポートすることができる。

    https://aws.amazon.com/jp/server-migration-service/

    AWS Server Migration Service は、短時間で AWS に移行できるサービス。

    ライブサーバーボリュームの増分レプリケーションの自動化、スケジュール設定が可能。

    VMware のインスタンスに対してAWS SMSを利用する際は、AWS Connector for vCenterと言うコネクターを移行対象となるオンプレミス環境のサーバーにインストールする。

    これにより、GUIを使用してVMware vSphereインフラストラクチャからAmazon EC2に仮想マシンをインポートできる。

    1. VMware vCenter から Amazon EC2 に移行する仮想マシンから EC2 インスタンスを起動。
    2. AWS Connector for vCenter を使用して仮想マシンを Amazon EC2 に移行

    と言う順番で行う。

    VM Import/Export を使った移行

    VM を既存の仮想化環境から Amazon EC2 にインポート、それを元の環境にエクスポートすることができる。

    この方法を使うメリットとして、

    • アプリケーションを Amazon EC2 へ移行
    • VM イメージカタログを Amazon EC2 にコピー
    • バックアップと災害対策のために VM イメージのリポジトリを作成できる

    といった点を挙げることができる。

    VM Import ではインポートプロセス中に VM が Amazon EC2 AMI に変換される。

    https://aws.amazon.com/jp/ec2/vm-import/