👨‍💻

AWS CLIでIAMロールを使用してアクセスしてみた

2022/05/14に公開

AWS CLIでIAMロール使用してs3のバケット一覧取得する。

目次


1.既存のIAMユーザーでs3にアクセス。
2.IAMユーザーを作成。
3.IAMユーザーでCLIでs3にアクセス。
4.IAMロール作成。
5.IAMロールでCLIでs3にアクセス。

前提


CLIのインストールが別途必要。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

1.既存のIAMユーザーでs3にアクセス。


  • 登録済みのIAMユーザーでs3にアクセスできることを確認します。
    • アクセスキーは設定済み
    • s3アクセス権限も設定済み

2.IAMユーザーを作成。


  • ユーザー名を記載し、『アクセスキー - プログラムによるアクセス』にチェックを入れ、右下の『次のステップ:アクセス権限』を押す。

  • IAMグループもIAMポリシーも追加せずに、『次のステップ:タグ』を押す。

  • タグの追加もせずに『次のステップ:確認』を押す。

  • アクセキーが設定されていることを確認し、『ユーザーの作成』を押す。

  • アクセスキーID、シークレットアクセスキーをメモるか、.csvダウンロードを押す。
    • アクセスキーの取り扱いに要注意。

下記を参照に作成したIAMユーザーのmfaを有効化しておく。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html

IAMユーザーの作成は完了。

3.IAMユーザーでCLIでs3にアクセス。


  • CLIでアクセスキーの登録する。
aws configure --profile ユーザー名

  • s3にアクセスする。
    • IAMに権限を付与してないので、access dinedされる。
aws s3 ls --profile zenn-user

4.IAMロール作成。

  • 設定画面で下記図のように選択していく。

  • IAMポリシーのフィルターで『AmazonS3ReadOnlyAccess』を検索しチェックを入れ、『次へ』を押す。

  • 設定内容に問題ないことを確認し、『ロールを作成』を押す。

  • 作成したロールにアクセスし、信頼関係の信頼ポリシーを変更する。
    • 現在先ほど作成したIAMユーザーに限定できてないので、変更して限定していく。

変更前

"Principal": {
     "AWS": "arn:aws:iam::381610018730:root"

変更後

"Principal": {
     "AWS": "arn:aws:iam::381610018730:user/zenn-user"

IAMロール作成完了

5.IAMロールでCLIでs3にアクセス。

  • configの設定内容を変更していく。
    • 下記コマンドで現在の設定を確認する。
cat ~/.aws/config
  • 下記コマンドで設定を変更する。
vi ~/.aws/config
  • 下記情報を追加する。
mfa_serial = IAMユーザーのmfaのarnを指定
role_arn = 作成したIAMロールのarnを指定
source_profile = cliでアクセスキーを設定した時に指定したユーザー名を指定。

  • s3にアクセスする。
    • 途中mfaの情報を聞かれるので、mfaの番号を打てばバケットの一覧が確認できる。
aws s3 ls --profile ユーザー名

Discussion