
本記事はサーバーワークス Advent Calendar 2025 (シリーズ 2)の17日目の記事です。
1 行まとめ
aws login して作業が終わったら aws logout しましょう。
おまけ
サーバーワークスの宮本です。タイトルと 1 行まとめのセクションで言いたいことは全て言い切ったのですが、そう思った経緯を少しだけ書きたいと思います。
aws login コマンドの登場
先日、AWS CLI に aws login コマンドが実装されました。ローカルに永続的なクレデンシャルを持つことなく、CLI や SDK で AWS リソースへのアクセスが可能となります。詳細は以下記事をご覧ください。
事故が起きるかも?
素晴らしいアップデートと思うと同時に、場合によってはこういう事故が起きる可能性があるなと思いました。本記事はそれに対する注意喚起のため執筆しています。
aws loginコマンドで本番環境の認証情報を取得- AWS CLI 等で作業を実施
- 本番環境の作業が終了
- しばらく経った後、開発環境だと思い込んで AWS CLI 等で更新系の作業を実施。実は本番環境だった 😱
aws login コマンド後は、明示的にプロファイルを指定しなくても認証情報を持った状態になるので、これまでデフォルトプロファイルを開発環境としていた方は、特に注意が必要だと思います。
aws logout コマンドで認証情報を破棄しましょう
aws login コマンドの対となるコマンドとして、aws logout コマンドが用意されています。これを実行して aws login コマンドで取得した認証情報を破棄するようにしましょう。先ほどの手順だと 3 の本番環境の作業が終了したあとですね。
事故を防ぐために他に出来ること
aws logout コマンドを実行することは第一として、その他に事故を防ぐためにできることを考えてみます。
極力手元の端末で本番環境向けの作業をしないようにする
IaC ツールを使ったデプロイはパイプラインで自動化するなど、そもそも手元の端末から本番環境を触らないように整えます。(Zero Touch Production などと呼ばれます)また、参照系の操作に限っては読み取り専用のプリンシパルで CloudShell を使用するルールを定めるのも良いかもしれません。
コマンド実行前にプロファイルを確認する
コマンド実行前に aws sts get-caller-identity で使用する認証情報を確認するようにします。開発環境向けには気軽にコマンドを叩いてしまいますが、このコマンドを実行するクセをつけておくと良いと思います。
まとめ
aws loginしたらaws logoutする- ちなみに aws sso login の対となるコマンドとして aws sso logout もあります