0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS SSOユーザーつくってみる

Posted at

はじめに

AWSで個人開発するために開発環境を整える

最初は管理IAMユーザーの長期パスで認証を実現しようと思ったが、

  • なんとなく不安
  • WSLなど挟んだ時にどういう動作なるかわからない

などの理由でSSOユーザーを勉強を兼ねてつくってみる

IAM周りの確認

Uer

  • rootユーザー: 作成済み。MFA設定済み
  • IAMユーザー:
    • AministratouAccessのポリシーがアタッチされているものが作成済
    • MFAは有効になってない

Role

3つあった。無害そうなので放っておく

Pasted image 20251115151551.png

IAM Identity Center

ルートユーザーではなく、管理者権限のIAMユーザーで作業している

SSOのインスタンス作成

SSOのセッションを管理するみたいなものと認識している

  • IAM Identity Center を開く
  • 右上にある Enable クリック -> さらに Enable をクリック
    Pasted image 20251115153439.png
  • Regionを明らかにミスってるので作り直す
  • 管理画面からデリート
    Pasted image 20251115154008.png
  • regionを東京にしてから再実行
    Pasted image 20251115154500.png

SSO Userをつくる

  • (Left Menu) Users -> add user
  • フォームを入力
    • Specify user details: 必須項目(名前とメアド)
    • それ以外は何も設定せず作成

Permission setsをつくる

  • (Left Menu) Pirmission sets -> create peimission set
  • フォームを入力
    • Pasted image 20251115155248.png
    • Pasted image 20251115155427.png

session の持続時間が1時間だと不便らしいので8時間にした

AWSアカウントと紐づける

  • (Left Menu) AWS accounts
  • rootのユーザ(=AWSアカウント)が出てきたので、選択して右上のAssign何とかを click
  • 前段で作成した SSOユーザーと Permission set を紐づける
  • 完了

動作確認(GUI)

  • settings summary の中のある AWS Access Portal を click
  • 遷移した先でユーザー名を入力
  • 作成したこと記憶のないパスワードを要求される
  • メール見たらInvitation to join AWS IAM Identity Centerが来てた
    • おそらくユーザー作った時点で来てた
  • パスワードを設定
  • 再度ログインを試行
  • MFAを要求されたのでApp選択
  • google AuthentecatorでQRコードを読み込み
  • 表示されたコードを読み取って入力
  • ログインできた
  • ログイン後は何もない虚無の画面に遷移したが、アカウントのトグルボタンをクリックしたらでてくるAdministratorAccessをクリックしたらいつもの画面に飛んだ

動作確認(CLI)

以下を実行

import boto3

def main():
    s3 = boto3.client('s3')
    response = s3.list_buckets()
    print(response)

if __name__ == "__main__":
    main()

Pasted image 20251115170959.png

aws cli でログインしてみる

“SSO セッション” と “プロファイルの作成(よくわかってない)

  • aws configure sso を実行
  • 必要な情報を入力
  • ブラウザに遷移 → 認証
  • default region: ap-northeast1
  • CLI default output format: None
  • Profile name: my-sso

aws sts get-caller-identity --profile my-sso
を実行→結果がくる

コードを再実行→状況が変わらず

以下のようにコードを修正

Before
---
s3 = boto3.client('s3')

After
---
session = boto3.Session(profile_name="my-sso")
s3 = session.client('s3')

結果がきた

最後に

ひとまず、SSOユーザーを使用して

  • 管理コンソールにログイン
  • SDKにトークンを渡して認証

が実現できた

  • SSOセッションprofileってなに
  • dockerやterraformではどうやって認証情報渡すの?
  • IAMユーザは全部消しちゃってOK?

などの疑問はあるが、ゆくゆく解決したい

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?