Hatena::ブログ(Diary)

にじにじだんす-ざれごと このページをアンテナに追加 RSSフィード

Aug 15, 2011

[][]最終ログイン日を調べる監査スクリプト

企業webサイト運用してると、殆ど企業システム監査が必要になるかと思います。

監査といっても、何をするのかよくわからなかったりしますが、おそらく

を確認するのが目的だと思います。

具体的に良くあるもののひとつに、サーバアカウント管理があると思います。

実は情報漏洩の原因ナンバー1は内部犯行です。

それを防ぐために、必要な人だけがサーバアクセスできる権限を持っていることが望ましいので、最後ログインしてから数ヶ月経過している人は必要に応じてアカウントを廃止する等をしていくことになるかなあと思います。

この手の情報検索してもあまりでてこないので、僕がやっているシンプル方法備忘録をかねて紹介します。

最終ログインが90日前のアカウント抽出してメール管理者に知らせるスクリプト

#!/bin/bash
#setting
MAILADDRESS=(送信先メアド)

#mail user list that never logged in
lastlog -b 90 | grep "Never" | mail -s "`hostname`: user audit never logged in" $MAILADDRESS

#mail user list that  logged in before 90 days
lastlog -b 90 | grep -v "Never" | mail -s "`hostname`: user audit before 90 days" $MAILADDRESS

lastlogコマンドを使って、最終ログイン日が90日より前の人をメールします。

lastlogコマンドは一度もログインしたことがない人もリストアップするので、上記スクリプトでは運用上便利なように、一度もログインしたことのない人と90日以内にログインしてない人を別々にメールを飛ばすようにしています。

正直言ってワンライナーでかけそうですし、実際lastlogの後もっと複雑/自動化した管理をされている方も多いかと思いますが、初めてシステム管理をするような人の参考になれば良いなあと思います。

Jun 25, 2011

[]DevOpsカンファレンス 2011/06/24に行ってきた。

イベントURLhttp://partake.in/events/b5472f43-5bc0-42d0-9469-dc70d7d95b24 (ATNDじゃなかったのがちょっと残念…)

http://d.hatena.ne.jp/marqs/20110625/1308973680

DevOpsってあまりはっきりしない言葉ではあるけれども感覚的に共感しているワード※だったりするのと、CAさんに行きたかったので(笑)参加しました。

※DevOpsについてはMTLブログ「Cloud時代の開発マインド」で触れてます

WEBサービスでは開発と運用が分かれることはない。

僕は以前からWEBサービスというのはリリース時点が0スタート、皆様に利用していただくために、サービスを24時間提供し続け、また利用者の為に日々改善をし続ける努力をしなければならないと思っています

それを実現するためには、開発と運用はそもそも分けられない、どちらも同時に追求していく必要があるし、だから開発->運用に引き渡す、なんてことはおかしな話だと思っています

WEBサービスは、サービスに関わるすべての人が、利用者のこと、事業のことを考えてないとうまくいかないと思ってます

なので、銀河さん(@kuwa_tw)が言った

事業が最大化する形で安定させ続ける形にする。

これは素敵なマインドだなあと。

CAさんのように複数のサービスを見ているインフラチームの場合、すごく難しいんですよ。

サービスごとに利用者、理念、事業が異なるから、どうしてもインフラ部分最適化になりやすい。

からこそ、障害対応責任サービス側で一次受けして切り分けをするような体制にすることで、

事業最大化のために最短の解決策を実施できたりする気がします。

MTLもCAさんとはだいぶ一つ一つの規模が違いますが、少人数でたくさんのサービスを世の中に出すことをしてきたため、そもそもインフラエンジニアがすべてのアプリを把握することは困難な状態。なので僕も障害時はアプリ側で問題切り分けをしたり、アプリエンジニアが簡単にDNS設定したりチューニングをしたりできるような仕組みを構築してきたので、本当に共感しました。

また、りーおさん(@riywo)の

一秒○○円損失がプレッシャー

も事業最大化を常に意識しているからこその言葉ですよね。

3月までNIJIBOXに所属していましたので、僕もこれはすごく意識していて、僕を始めインフラエンジニア過去経験から得たスキルマインドを入りたてのアプリエンジニアに注入する努力をしてました。

エンジニアってこの辺ピンと来る人がそれほど多くはないので、なかなか理解は進まなかったり、

実際にアプリが新着トラフィックをさばききれなくて停止、ユーザー損失、○○xxx円損失ということが多く発生してしまっていたのが心残りなのだけど……

その他、メモ

気になったことはtwitterでつぶやいたので、つぶやいたものを下にまとめておきます


最後に:

何となくですが、僕が(MTLが)やっている(きた)こともお話しすると参考になる方がいるのかもしれないなあと思いました。次回エントリーしてみようかな…

f:id:nijiniji:20110625220435j:image:w360

最後銀河さんをshoot.

これから、参加した勉強会イベントについて何かメモを残していこうかなと思います

Jan 12, 2011 このエントリーを含むブックマーク

MacBook Air 11インチ欲しい!

モデルを使っているが、重さはいいものの面積は理想より一回り大きいとおもっていたところ、

MBA11インチはまさしく理想コンピュータだなと思ってます

ほしいよぅ

Dec 29, 2009

[]Amazon EC2イメージ(AMI)をus-eastからus-westにコピーする方法 こぼれ話

Amazon EC2のイメージ(AMI)をus-eastからus-westにコピーする方法 : Media Technology Labs (MTL) : メディアテクノロジーラボ ブログをかなりサマった形で書いたので、ココでは詳細版というかこぼれ話的な感じで書きたいと思います。

1. US-WESTのS3にコピー

既存のEC2インスタンス(us-east-1)にログインして、以下のコマンドを実行。

% ec2-migrate-bundle -k (your private key file) -c (your cert) -a (your access key) -s (your secret access key) --bucket (your source bucket) --manifest (your manifest filename) --location us-west-1 --region us-west-1 --destination-bucket (destination bucket you want to make)

ポイントですが、EC2インスタンスから初めてイメージを保存するときとは異なり、us-west側のS3上にあらかじめbucketを作っておく必要はありません。むしろ既にあると怒られます。" --destination-bucket"にus-westのS3に作成したいbucket名を指定すれば、自動的にbucketを作成し、そこにus-eastのイメージデータコピーしてくれます。

ググってみると、こちらのように手動でイメージコピーしなきゃいけないのかなと思い、S3 BucketExplorerを入れてus-westにバケットを切ったり、このドキュメントだけじゃなくフォーラムに質問した際も勧められたので"ec2-migrate-image"コマンドを試したりしたのですが、”ec2-migrate-image”のドキュメントをみると

This tool replaces ec2-migrate-bundle.

なんて書いてあったので、上記のコマンドにたどり着きました。そして"ec2-migrate-bundle"ってMacインストールしたtoolにないよ〜と最新版をインストールし直したりしましたが、EC2インスタンス側にしかないと気づきEC2ログインし、AMI作るためにアップロードした.pemファイルがまだ残っていたので念のためそのディレクトリに移動し、実行しました。

そしたらS3のBucketは事前に作らなくても良かったと…。

もう一つポイントとして、manifestが"bucketname/hoge/image.manifest.xml"のようにディレクトリを切って階層が深い場合の指定方法ですが、"--bucket bucketname/hoge --manifest image.manifest.xml"と指定すればOKです。


2. AMIを登録する

ElasticFoxでも出来ると思いますが、今回はローカルMacBookからコマンドを実行しました。

% ec2-register --region us-west-1 --name (your ami name) (your new manifest fullpath on us-west-1)

"--region us-west-1"を忘れずに。

これで完成です。S3のツールやAPIをいっさい触らずに出来ますので、分かってみると非常に簡単でした。でも(自分にとっては)情報英語だけだとやはり時間がかかりますね…