読者です 読者をやめる 読者になる 読者になる

クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

Lambda + CloudWatch Events + KMS で AWS コンソールへの不正アクセスを秒速で検知して「平穏な生活」を手に入れる

AWS CloudWatch Events KMS

ペルソナ5にドハマリし、先日100時間以上かけてクリアした @tmknom です。 主人公の名前は吉良吉影。怪盗団の名前はキラークイーンです。ちなみに二周目に突入しました。

さて、みなさんもご存知の通り、 AWS ユーザは常にある不安を抱いています。 AWS アカウントを乗っ取られたらどうしよう。バイツァ・ダストよろしく、すべてを吹っ飛ばされたらどうしよう。という不安です。

しかし、我々は AWS を使わずにはいられないという『サガ』を背負ってはいますが『幸福に生きてみせるぞ!』という強い意思を持たねばならないのです。

そんなわけで、意思を現実のものへと体現すべく AWS コンソールへ、いつ誰がサインインしたのかSlackに通知して、 不正アクセスを簡単に検知できる仕組みを構築してみましょう。

  • はじめに
  • 事前準備
  • バージニア北部へリージョンを切り替え
  • Lambda の初期セットアップ
  • CloudWatch Events の設定
  • CloudWatch Logs の設定と確認
  • Slack で Incoming Webhooks の URL の払い出し
  • Lambda で Slack へ通知するよう修正
  • KMS でマスターキーを作成
  • AWS CLI で秘密情報を暗号化
  • Lambda の最終形を実装
  • まとめ
  • We're Hiring!

はじめに

ココで構築する仕組みは「Lambda + CloudWatch Events + KMS」で実現します。 CloudWatch Events で AWS コンソールへのサインインを検知して、それを Lambda 経由で Slack に通知します。 KMS には、Slack 通知に必要な秘密情報を Lambda に持たせる際に使用します。

f:id:tmknom:20161030123858p:plain

続きを読む

CW Tech Meetup #02: Ruby on Rails Tech Meetup を開催しました

Meetup Rails

f:id:Dooor:20161027110605j:plain

こんにちは。プロダクト開発Divの戸口(@Dooor)です。

先日クラウドワークスでは、Ruby on Railsについて利用したアプリケーション開発からRailsそのものについて気軽に情報交換できる場を作りたいということでCW Tech Meetup #02を開催しました。

cw-meetup.doorkeeper.jp

第2回ということで多くの方々からお申込みをいただき、当日も大盛況に終えることができました。
Rails5へのアップグレードやSprocketsの話など、いろいろな内容の発表があった今回のイベントにの様子をお伝えします。

続きを読む

HerokuのDataclipsを使って簡単にリアルタイムでデータを見える化した話

Heroku 分析

開発の山本です。最近いきなり寒くなってきて焼酎のお湯割りが飲みたくなる季節になりましたね!

今、私が携わっているプロダクトはHerokuで運用しており、サービスが稼働してから3ヶ月程立ちました。 実運用が始まりリリース直後のバタバタが落ち着いてくると、次のステップとして分析用にデータが欲しいという要望が当然でてきますね。
しかしながら、新規のプロダクトでは抽出のやり方も一から考えないといけず、正直アプリケーション開発に時間をかけたいので、あまり手間暇かけて仕組みを作りたくもないのが本音です。単純にCSVで落として渡すだけだと何度も依頼が来て(ノ`Д´)ノ彡┻━┻ってなることは目に見えてるのでそれも避けたいですね。

ということで今回はDataclipを使ってデータ抽出を簡単にやったよという話です。

続きを読む

突然ですが、クラウドワークスを退職します。

λ口 退職エントリー

9月も残り少ない今日この頃、皆様いかがお過ごしでしょうか?

この度、9月30日をもってクラウドワークスを退職することになりました*1
toku345 こと 徳光史考 です。

クラウドワークスでは CrowdWorksの機能追加・改善、管理画面の機能追加・改善、CrowdFlowerとの連携機能実装など、フロントエンド 〜 バックエンドを広く浅くやってきました。

さて、この手の退職エントリーって普通は個人ブログに書くんじゃないの?
と思われたそこのアナタ!

私もそう思うのですが、幸か不幸かこのようなチャンスを頂きましたので、今の私にしか書けないような内容をQ&A形式でお送りしてみようと思います。

しばしお付き合いを...

*1:と、言いつつ30日はお休みを頂くので実質本日(29日)が最終出社日なんですけどね

続きを読む

将棋 + Git = Shogit

クラウドワークスでエンジニアをしている八木 ( @negito6 )です。

私は今年から、将棋のネット観戦が趣味になっています。最近では、映像に名前や顔が映らずとも、声や手の仕草だけで棋士の先生を判別できるようになってきました(だからどうってこともないですが・・・)。好きな解説の先生は、ズバリ!渡辺明竜王*1です。

「棋譜」と「検討」

(会社のエンジニアブログなので、普段の記事では以上のような軽い自己紹介をした上で技術的な内容に入ることが多いですが、今回はもう少しだけ続けます)

将棋では、対局の中のある場面でのいろいろな手のパターンを考えることを、「検討」と言います。こうすればもっと早く決着がついてたとか、ああすれば勝ち負けが逆転したしたのではないか、といったことを一人で考えたり、人と話し合ったりします。私自身も(棋力はさっぱりですが)強くなりたいので、自分が指した後は検討をすることがあります。

しかし、あれこれパターンを試していると、さっき考えたパターンが思い出せなくなったりしてきます。パターンは多分岐の木構造に枝分かれしていくので、紙に残すのもちょっと面倒で、どうにかならないかと悩むようになりました。盤面の変更を棋譜として順番に記録していきたいが、変更の各地点で枝分かれの可能性があり、進んでは戻り、また新しい枝を作り...と、ここまで考えると、将棋以外の手慣れた作業が思い出されます。そうですね。Git です。検討ついて記録することは、Git のブランチ・コミット操作と同一視できます。

というわけで、棋譜を Git にコミットして記録していくプログラムを作ってみることにしました。名前は Shogi + Git で安直に Shogit です。本記事では Shogit を作る過程と実装に関して簡単にご紹介したいと思います。

f:id:negito6:20160923120152j:plain

*1:2016年9月23日現在、竜王・棋王の二つを保持されている強豪の棋士です。解説としての人気も高く、将棋ファンからするとベタ中のベタな回答です。

続きを読む

© 2016 CrowdWorks, Inc., All rights reserved.