nmtysh.log

Tech系のネタや日々の独り言などを書いています。

Elastic Beanstalkの設定メモ

まとめ

ちゃんとドキュメントを読みましょう。
細かいところを読み飛ばしていてハマりました。

設定値の優先順位など

  • 設定ファイル (.ebextensions)よりもコンソールの設定が優先
  • 一部設定はコンソールで無設定にできない
    • コンソールでphpのdocument rootを空に設定したら、ebextensionsで指定した値ではなくnullになってた

PHP

  • Composerはデフォルトだと"--dev"状態で実行される
    • 開発用パッケージもインストールしようとするので時間がかかる
    • ebextensionsのcomposer_optionsで"--no-dev"を指定する
option_settings:
  - namespace:  aws:elasticbeanstalk:container:php:phpini
    option_name:  composer_options
    value:  --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader

あるいは

option_settings:
  aws:elasticbeanstalk:container:php:phpini:
    composer_options: --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader

Laravel

  • /var/app/current はデプロイ時にすべて入れ替えられる
    • セッションをファイル管理しているとデプロイ時に消える(storage/framework/sessions にあるため)
    • 同様にログも消える
      • PHP環境でも /var/app/support/logs/ が生成されているのでここにログを出せば良さそう。ログローテートなども構成されている
  • 自前でログの出力先を確保した場合
    • ログ末尾、バンドルログ、ローテーションされたログ、logrotateの設定を作る必要がある。じゃないとbeanstalkのコンソールで取得できないしS3に保管されない
  • ebextensionsのcontainer_commandsはrootで実行される
    • suでwebappユーザー(apacheユーザー。ユーザー名を取得するヘルパースクリプトもある)として実行しないとログやキャッシュがrootで作成されて書き込めなくなる
commands:
  sudotest:
    command: su -s /bin/bash -c "php artisan migrate --force" webapp

services:
  sysvinit: # ←この行大事。services直下にサービス名ではなく、sysvinitの下にサービス名を指定しないと認識されない。見落としていてハマりました
    awslogs: # サービス名

RDS

参考

Chromeでurlバーの表示を省略しないようにする

Chrome 69でurlのhttps://やwwwが省略されるようになりました。

Google Chrome 69のアドレスバーでは「www」などのサブドメインが勝手に省略されることが判明 - GIGAZINE
gigazine.net

個人的にこれはかなり不便です。
Firefoxのように薄く表示される程度ならまだしも表示されなくなるとどのサイトを開いているのか判断が難しくなります。
おまけにバグもあるようですし。

というわけで以前のように表示されるように設定しました。

chrome://flags にオプションが用意されていましたので、Omnibox UI Hide Steady-State URL Scheme and Trivial SubdomainsをDisabledに設定してChromeを再起動します。

アップデートで従来の仕様に戻ってくれるとうれしいんですけどね……

関連

ブログデザインを変えました

タイトルの通りですが、ブログのテーマを変更しました。

これまでは公式テーマのBordeauxでしたが、
http://blog.hatena.ne.jp/-/store/theme/12921228815712830650

同じく公式テーマのReportに変更しました。
http://blog.hatena.ne.jp/-/store/theme/12921228815712830663

コンテンツの中身は変わっていませんが、余白部分の色が変わるだけでかなり印象が変わりますね!
サイドメニューにもうちょっと幅が欲しいところですが、しばらくはこのテーマを使っていこうと思います。

ハッカーズチャンプルー2018に当日ボランティアスタッフとして参加しました!

先月の6/30(土)に行われたハッカーズチャンプルー2018に当日ボランティアスタッフとして参加しました!

去年やその前は他のイベントとの都合もあり参加していなかったのですが、今回は調整がついたので参加できました!
参加を申し込んだ時点ではスタッフとしての参加ではなく聴講者としての参加でしたが、
後日、当日ボランティアスタッフ募集のアナウンスがあったのでボランティアとして参加することにしました。

なぜボランティアスタッフとして参加したのか

普段、OWASP Okinawaでイベントを開催していますが、イベント規模が大きくなればなるほど人手が必要になると実感しています。
ボランティア募集のアナウンスがあったときに、過去にハッカーズチャンプルーに参加したときにとても良いイベントだと思ったので協力したいと思い参加しました。
後は別件で規模が大きいイベントに少し関わっているので、そちらの参考にもなればなぁという意図もあったり。

行ったこと

  • 会場の設営や撤収作業
  • 受付への誘導
  • 会場案内
  • お弁当や飲み物の配布

臨機応変に人手が必要そうなところを手伝っていました。
ボランティアスタッフなので会場の設営とか片付け、案内が主です。

前日までに行われるスポンサー対応や発表者対応、会場の検討などは運営(コア)メンバーが行っています。
なので、そういった運営周りに関わりたい方は運営メンバーに立候補するようにしましょう。
もしくはハードルがかなり高くなるとは思いますが、自分たちでイベントを企画・開催するのもありですね。

イベントの感想

  • デザインの話やベンチマークの話など発表のジャンルに幅があって良かった!
    • 興味深い話が多くて濃い一日でした!
  • LTやスポンサーセッションではきっちり時間通りに容赦なく打ち切る。発表者側も話を止めてくれる
  • 会場のインターネット回線(Wi-Fi)問題は難しい(悩ましい)

最後に

登壇者の皆様、運営の皆様、スポンサーの皆様、それから参加者の皆様ありがとうございましたm(_ _)m
来年も開催されるようなので、都合が付けば参加したいと思います!

集合写真(撮影: 公式カメラマンチーム)

Micro Hardening v1.x@沖縄に参加しました!

6月2日(土)に行われたMicro Hardening v1.x@沖縄に参加しました!

Micro Hardeningとは?

戦う相手は過去の自分

Micro Hardening は「衛る技術の価値を最大化することを目指す」プロジェクトであるHardening Projectから生まれたサブプロジェクトです。「セキュアなハードニングをカジュアルに競技形式で学ぶ勉強会」であるMINI Hardening Projectよりもさらにカジュアルに「ゲーム感覚で」サイバー攻撃に対処する能力を磨くことを目指しています。
Micro Hardening v1.x@沖縄 イベントページの解説より〜

8時間から1数時間かけて競技を行うHardeningや、3時間のMINI Hardeningとは異なりMicro Hardeningでは1セット45分を複数回繰り返し行うことで、最初のセットで経験したことを次のセットにフィードバックしていってより高得点を目指すというものです。
どのセットでも同じタイミングで同じ攻撃が行われるように設定されているため(MINIでも見習いたい!)、攻撃パターンを把握しその対処方法を検討・試すということができるようになっています。

またMicro Hardeningでは報告書作成が無くECサイトの売上で評価されるため、堅牢化に専念することができます。
とは言え、作業ログを残しておかないと次のセットに生かすことができないため、作業の記録やチーム内での共有は重要です。

その場で組んだ即席のチームでWebブラウザを使ってサービスの状態を確認したり、ログを解析しながら攻撃に対処していきます。

攻撃された内容

ネタバレになるので詳しくは書きませんが、

  • 過去に話題になった脆弱性を悪用される攻撃もまだまだ現役
    • 適切にアップデートしましょう
  • 設定のミスや不適切な設定(初期設定のままなど)による情報の漏洩や悪用
    • その設定は本当に必要ですか? 巷の設定を鵜呑みにしていませんか?
    • IDやパスワードは変更しましたか?

などでした。
これらは残念なことに巷のサイト・サーバーでもあるとのことでした。

確認したこと・対応したこと

こちらもネタバレにならないようざっくりと。

  • 配布資料を見て構成を把握する
  • 実際の環境を調べて構成を把握する(資料通りなのかどうかなど)
  • ログを見る(アクセスログや認証関連のログなど)
  • サーバーのリソース状況のチェック
  • サイトが閲覧できるかどうか、コンテンツに問題がないかどうかのチェック
  • 不要なアカウントやサービスは消す・無効化する
  • などなど

サーバー(サービス)を運用するときとほとんど一緒ですね。

競技の結果

Hardeningに複数回出場している&MINI Hardeningの運営という立場なので下手なスコアは出せないというプレッシャーがありましたが、各セットでその前の回のスコアを上回るスコアを出せて、順調に得点を増やすことができました。

終わりに

Hardeningに限らず、日々の運用でも普段の(通常あるいは正常な)状態(リソース状況やサービス稼働状況、ログの出力内容など)が判らなければ異常もまた判りません。
正しい(あるべき)姿を把握するのは重要だと思っています。

堅牢化や安定化のため不要そうに見える(が実は重要な)プログラムやアカウント止めてしまった結果、動かしたいものが正常に動作しなくなることがありえます。
一度に色々な変更を行ってしまうと問題が発生したときにどの設定が問題だったのかわからず原因の切り分けや対処が難しくなってしまいます。
一つずつ変更しては状況を確認して、問題が有れば(あるいは想定していた効果が無ければ元に戻す)切り戻し、無ければ次の変更を試すという繰り返しが大事です。
誤ってサービスを止めてしまったときはかなり焦りました。変更を行うときにはすぐに元に戻せるようにしておくのは本当に大事です。

次のMicro HardeningMicro Hardening v1.x@長野 2018/07/21 です。
このブログを書いている時点(2018/06/06)ではまだ参加可能ですのでMicro Hardeningに興味を持った方は参加してみてはいかがでしょうか。

AndroidのChromeで同期できなくなった件の対処(解決済み)

久しぶりの投稿です。

AndroidChromeで気がついたらログアウト状態になっていて、同期ができなくなっていたのでそのトラブルシューティングを行いました。
私はこの方法で解決できましたが、状況によるようです。
また、不具合が修正された開発者サービスがリリースされているようです。

TL;DR

AndroidにログインしているGoogleアカウントを利用して同期を行うにはChromeに「連絡先」の権限を許可する必要がありました。

環境

  • P10 Lite
    • OS: Android 7.0
    • ビルド番号: WAS-LX2JC635B188
  • Chrome
    • バージョン: 66.0.3359.158
  • Google Pay開発者サービス
    • バージョン: 12.6.73

試したこと

1. Chromeでログインする

認証出来た後「このアカウントはお使いの端末に既に存在します」というエラーでログインできず。

2. Google Pay開発者サービスのデータを消す

→効果なし

3. Google Pay開発者サービスを再インストールする

→効果なし

4. Chromeのキャッシュを消す

→効果なし

5. Chromeのデータを消す

→効果なし
最後に同期出来ていたときのブックマークすら消えて残念なことに(データを消したので当たり前ですが)

6. Chromeを再インストールする

→効果なし

7. Chromeに"連絡先"権限を許可する

ログインできるようになりました。

操作手順

  1. [システム設定]->[アプリ]->"Chrome"->[権限]で"連絡先"を許可します
  2. Chromeの[設定]から[Chromeにログイン]を選びます。
    Android端末でログインしているアカウントが選択肢に出てきます(もし出てこなければ一度Chromeを再起動します)。
  3. アカウントを選択して[続行]します。

ログインと同期の成功後に"連絡先"権限を取り消すと再びログアウト状態になってしまいました。
再度権限を有効にしてもログアウト状態のままで上記のログイン操作が必要でした。

まとめ

AndroidにログインしているGoogleアカウントを利用して同期を行うにはChromeに「連絡先」の権限を許可する必要がありました。
元々各アプリで必要最低限の権限しか許可していなかったのでアプリのアップデートのタイミングで権限の参照周りが変わったのかもしれません。
Chromeアプリの説明欄にはログインするために「連絡先」権限が必要とはありませんでしたが、アプリで利用する権限の詳細を確認すると、「連絡先」の部分に「この端末上のアカウントの検索」とありました。

トラブルシューティングのためにヘルプを見ていたのですが、ヘルプに問題がある場合は「フィードバックを送信」から送信してとありましたが、いつの間にか送信機能が見当たらなくなっていました。
ストアではレビューコメントを出せますが、不具合報告機能は無いので不具合の報告は不便ですね……

IIJmioのSIMカードサイズを変更した

ブログにまとめようと思って気がついたらだいぶ時間が立っていました。

去年、端末購入前にSIMカードのサイズ交換(micro sim→nano sim)を申込んだのでそのときにかかった日数などのメモ 結局端末はまだ買い替えていないのですけどね…

・1日目(水) 7時ごろ simカードサーズ変更を申し込みmicro->nano
登録メールアドレス宛に確認コードが来るので認証。
契約して以降に引っ越しをしていたので、改めて本人確認書類のアップロードが必要とのこと(アップロードサイトのログイン情報がメールで来ました)
運転免許証の両面写真を専用サイトでアップロードしました。

・1日目 12時ごろ 本人確認手続き完了のメール通知がありました。

・2日目(木) 10時ごろ micro simが使えなくなる(この時点までに発送通知などの連絡はなし)

・3日目(金) 6時ごろ 発送通知。翌日(4日目)にお届け予定とのこと。
通知された荷物の追跡番号で確認すると前日の18時ごろに発送されていました。

・4日目(土) 15時ごろ nano sim到着。利用できることを確認。

私の場合は2日とちょっとの間、SIMが使えない状態となりました。
発送にかかる日数は住んでいる地域で変わると思います。
ヘルプページを見ると最短3〜4日程度かかるとありますので、交換を申し込む場合は使えなくなる期間に注意してください。

SIMカード交換を申し込みました。手元のSIMカードはいつまで利用可能ですか? | IIJmio
https://help.iijmio.jp/app/answers/detail/a_id/79/
お手元のSIMカードは、新しいSIMカードの利用開始日(お届け予定日)の前日までご利用いただけます。 新しいSIMカードのお届け予定日は、事前にメールでお知らせします。

 

SIMカードのサイズ変更はできますか? | IIJmio
https://help.iijmio.jp/app/answers/detail/a_id/17/
SIMカードサイズ変更時の注意事項を教えてください。 | IIJmio
https://help.iijmio.jp/app/answers/detail/a_id/1667/

SIMカードサイズ変更または再発行をご依頼いただいた後、弊社にて新しいSIMカードの準備ができた段階で、旧SIMカードはご利用ができなくなります。新しいSIMカードが届くまでは、お手元の旧SIMカードで通信ができない期間が発生しますので、あらかじめご了承ください。
・配達日時の指定はできません。SIMカードサイズ変更または再発行を承った後、最短3~4日程度でお客様のご登録住所宛に新しいSIMカードをお送りします。
※土日祝をはさむ場合やお届け先が離島の場合は配送にお時間をいただくことがあります。