Amazon CTO nightというイベントでAmazon CTOのWerner氏と直接話すラウンドテーブルというイベントに招待いただいた。そこで、CTOの心構え的なありがたいお話をお聞きしたりしたのだが、どういう文脈だったかは忘れてしまったが、AWSの2FAの鍵を部下に渡しているか?という話があった。
実のところ僕は渡せていない。だからアレがコレすると大変なことになる。別に操作権限自体はSREチームは持っているのでほとんどのことは彼らにまかせているが、最終的な部分は未だに持っている状態にある。
このような状態を維持した時の弊害として、AWS admin権限に関する責任とトラブルシュートに関するタスクは全部自分のところにやってくる。
抱えている権限と責任というのはセットで存在する。
これと似たような話を、以下の記事で感じた。
デプロイ後のサーバに問題があった時に、いの一番にインフラエンジニアが呼ばれるのは、彼らが最後にデプロイをしたからだ。
もしデプロイが属人化されておらず、誰でもできるようになっていて、かつ、デプロイログが可視化されているならば、トラブルが起きた場合は、最後にデプロイした人を中心に一次切り分けが行われるはずだ。
ちゃんとサーバログのアラートなどが作り込まれているのであれば、インフラ担当よりも、むしろ直接的な原因を作っている可能性の高いアプリケーションエンジニアの方が対処を求められる可能性が高い。
もしくは、その修正権限を他の人が持っているなら、revertも含めた対応で、すぐに直してしまうことができる。
つまり、デプロイ権限やroot権限をインフラ担当のエンジニアが持っている限りは、何かトラブルがあった場合には、その権限を囲い込んでいる人間のところに最初の切り分けが行くことになる。
そうならないようにデプロイメントのシステムやワークフローを進化させたり、プリミティブなドキュメントの社内公開などを考えたほうが良い。つまり、いずれにせよ開発メンバーなら「誰でもリリースができるようにするべきだ」ということかと思う。
【PR】ご意見、感想などは是非、mstdn.fmのローカルタイムラインでお聞かせください