毎日のちょっとした面倒を減らす、AWSログイン整備の話(CLI+コンソール)
はじめに
こんにちは、GOGENでCTOをしている楠本(@zabio3)です。
開発中って、何かとAWSにログインする機会がありますよね。ローカルで aws-cli
を使ったり、AWS_PROFILE
を読み込んで開発用のアカウントに切り替えたり。ときにはコンソールからECSやCodeBuildの状況をチェックしたりと、地味だけど頻度高く発生する操作です。
とはいえ、こうしたログイン周りに特に設定をしていないと、
毎回IDとパスワードの入力を求められ、そのたびにパスワード管理ツールを開いたり、
そもそも誰にどのアクセス権限を付与していたのか分からなくなったりと、細かなストレスが積み重なっていきます。
さらにCLI側でも、アクセスキーを発行して .aws/credentials
に直接書いていたりすると、キーの管理や漏洩リスク、権限の棚卸しなどが煩雑になりがちです。
そこで、GOGENでは創業初期から Google Workspace と AWS IAM Identity Center のSSO構成を導入し、ログインやアクセス管理を一本化しています。
これにより、
- パスワード不要でスムーズにログインできる
- CLIでも
aws sso login
一発で切り替えられる - グループ単位で権限を付与・管理できる
- 監査や棚卸しもシンプルに
と、開発者体験・セキュリティ・運用効率がまるっと改善されました。
この記事では、GOGENで実際に使っている 「AWSコンソール & AWS CLI × SSOログイン」構成の具体的な運用方法を紹介します。
AWS IAM Identity CenterとGoogle Workspaceの連携概要
GOGENでは、普段からGoogleアカウントを利用して、日々使うさまざまなツールと連携しています。そのため、社内の Google Workspace
アカウントをIdPとして AWS IAM Identity Center
と連携させることで、開発者はGoogleアカウントでそのままAWSにログインできるようになっています。
構成の要点
-
Google Workspace
でSSOユーザー管理 -
IAM Identity Center
で権限セットを作成し、アカウントごとに割り当て - アクセスは、
aws sso login
or Webコンソール によって実行
これにより、エンジニアが扱うアカウントやロールが増えても、グループベースで一元管理できる運用体制が整っています。
AWS CLIでのSSOログイン設定
AWS CLIを使って各種AWSリソースへアクセスする際にも、SSO構成を取り入れておくととても快適です。特に複数アカウントを横断する開発では、都度のログインやアクセスキー管理から解放されるメリットが大きくなります。
以下のようにSSO用のプロファイルを定義することで、CLI操作もスムーズに行えるようになります。
[sso-session gogen-sso]
sso_start_url = https://<your-domain>.awsapps.com/start
sso_region = ap-northeast-1
sso_registration_scopes = sso:account:access
[profile core-prod]
sso_session = gogen-sso
sso_account_id = <account_id>
sso_role_name = <role_name>
region = ap-northeast-1
[profile core-stg]
sso_session = gogen-sso
sso_account_id = <account_id>
sso_role_name = <role_name>
region = ap-northeast-1
ログインと利用方法
$ aws sso login --sso-session gogen-sso
自動でブラウザが開くので、紐づいているGoogleアカウントで認証。
その後、設定したプロファイルを使ってCLI操作が可能になります。
$ aws s3 ls --profile <account>
プロファイルをいくつか用意しておけば、複数のアカウントをシームレスに切り替えられます。
AWSコンソールからのログイン手順
Google Workspaceのアカウントにログインしていると、Googleアプリメニューから 「AWS IAM Identity Center」 を選択することもできます。
これをクリックすることで、どのアカウントに入るべきか判断しやすくなり、AWSコンソールへのログインがよりスムーズになります。
- ブラウザで https://<your-domain>.awsapps.com/start にアクセス
- Google Workspaceのアカウントを選択(複数ある場合)
- 表示されたアカウント一覧から該当の環境を選択
- 「Management Console」をクリックすると、対象アカウントへ即ログイン
一度ログインすれば、SSOセッションが一定期間維持されるため、パスワードレスな運用が日常的に可能になります。
権限セットとユーザー・グループ管理
IAM Identity Center
では、以下の単位でアクセス制御を構成します。
- ユーザー / グループ(Google Workspace経由で連携。developers, operators などの単位で扱う)
- 権限セット(IAMロールに相当する権限定義)
- アカウント(AWS Account単位の管理対象)
この組み合わせで、誰がどのアカウントにどの権限で入れるかが決まります。
以下は構成のサンプルです。
グループ名 | 対象アカウント | 権限セット |
---|---|---|
developers |
dev / stg / sandbox 環境 | PowerUserAccess |
operators |
production 環境 | ReadOnlyAccess |
administrators |
全アカウント | AdministratorAccess |
実際の運用では、グループベースで権限を付与することで管理を簡潔に保ちつつ、アカウント横断でのアクセス制御を安全に実現しています。
おわりに、GOGENではエンジニアを募集しています!
AWSへのログインや権限管理といった日々のオペレーションは、地味だけど確実に開発体験に効いてくる部分です。
GOGENではこうした細部にもこだわり、働きやすく・運用しやすい開発環境をチーム全体で作り込んでいます。
本記事で紹介したSSO構成やCLI連携もその一つで、日々のストレスを減らしながら、「本質的な開発」に集中できる状態を整えることを大切にしています。
もし、そうした環境づくりや、設計と価値の接点に面白さを感じる方がいれば、ぜひ一度カジュアルにお話ししましょう。
採用情報の詳細は、下記リンクよりご覧いただけます👇
Discussion