🔥YubiKeyでCLI環境でのAWS MFA認証を楽にする2022/11/25に公開2022/11/293件AWSIAMMFAYubiKeytechDiscussionTomoya Amachi2022/11/26.aws/config に以下の設定をすると、セッションがない場合に自動で認証してくれます。 [profile ${IAM_USERNAME}] mfa_serial=arn:aws:iam::${ACCOUNT_ID}:mfa/${MFA_DEVICE_NAME} credential_process=aws-vault exec <aws-vault profile名> --json --prompt ykman -- Eviry Tech Blog2022/11/29コメントありがとうございます。コメントいただきました内容に関して追記させていただきました。 返信を追加longman_5842023/12/20MFAを有効にしたIAMユーザーでAWS CLIを使う際に作業負荷を下げる方法を探していたので、非常に助かりました。 ありがとうございます。 ところで、${IAM_USERNAME}というプレースホルダーの部分、ここは少々混乱しました。 実際に指定するのは任意の文字列であり、IAMユーザー名とは無関係ですよね。 なので、プロジェクト名project-1で使っているアカウントID123456789012のIAMユーザーlongmanについて、わかりやすいようにプロジェクト名+IAMユーザー名でプロファイルを作りました。 aws-vault add project1-longman というコマンドを実行し、configに[profile project1-longman]というエントリが生成されます。 あともう1つ、私の環境ではデフォルトリージョンをセットしていないので、プロファイルにリージョンがない場合はaws-vault exec --prompt ykman project1-longman-s3-ioで以下のエラーが返りました。 operation error STS: AssumeRole, failed to resolve service endpoint, an AWS region is required, but was not found そんなこんなで、最終的なconfigがこんな感じになりました(s3-ioは検証用にS3フルアクセスを持つロールです)。 [profile project1-longman] region=ap-northeast-1 mfa_serial=arn:aws:iam::123456789012:mfa/yubi-for-switch source_profile=project1-longman [profile project1-longman-s3-io] include_profile=project1-longman role_arn=arn:aws:iam::123456789012:role/s3-io 返信を追加
Tomoya Amachi2022/11/26.aws/config に以下の設定をすると、セッションがない場合に自動で認証してくれます。 [profile ${IAM_USERNAME}] mfa_serial=arn:aws:iam::${ACCOUNT_ID}:mfa/${MFA_DEVICE_NAME} credential_process=aws-vault exec <aws-vault profile名> --json --prompt ykman -- Eviry Tech Blog2022/11/29コメントありがとうございます。コメントいただきました内容に関して追記させていただきました。 返信を追加
longman_5842023/12/20MFAを有効にしたIAMユーザーでAWS CLIを使う際に作業負荷を下げる方法を探していたので、非常に助かりました。 ありがとうございます。 ところで、${IAM_USERNAME}というプレースホルダーの部分、ここは少々混乱しました。 実際に指定するのは任意の文字列であり、IAMユーザー名とは無関係ですよね。 なので、プロジェクト名project-1で使っているアカウントID123456789012のIAMユーザーlongmanについて、わかりやすいようにプロジェクト名+IAMユーザー名でプロファイルを作りました。 aws-vault add project1-longman というコマンドを実行し、configに[profile project1-longman]というエントリが生成されます。 あともう1つ、私の環境ではデフォルトリージョンをセットしていないので、プロファイルにリージョンがない場合はaws-vault exec --prompt ykman project1-longman-s3-ioで以下のエラーが返りました。 operation error STS: AssumeRole, failed to resolve service endpoint, an AWS region is required, but was not found そんなこんなで、最終的なconfigがこんな感じになりました(s3-ioは検証用にS3フルアクセスを持つロールです)。 [profile project1-longman] region=ap-northeast-1 mfa_serial=arn:aws:iam::123456789012:mfa/yubi-for-switch source_profile=project1-longman [profile project1-longman-s3-io] include_profile=project1-longman role_arn=arn:aws:iam::123456789012:role/s3-io 返信を追加
Discussion
.aws/configに以下の設定をすると、セッションがない場合に自動で認証してくれます。コメントありがとうございます。コメントいただきました内容に関して追記させていただきました。
MFAを有効にしたIAMユーザーでAWS CLIを使う際に作業負荷を下げる方法を探していたので、非常に助かりました。
ありがとうございます。
ところで、
${IAM_USERNAME}というプレースホルダーの部分、ここは少々混乱しました。実際に指定するのは任意の文字列であり、IAMユーザー名とは無関係ですよね。
なので、プロジェクト名
project-1で使っているアカウントID123456789012のIAMユーザーlongmanについて、わかりやすいようにプロジェクト名+IAMユーザー名でプロファイルを作りました。というコマンドを実行し、configに
[profile project1-longman]というエントリが生成されます。あともう1つ、私の環境ではデフォルトリージョンをセットしていないので、プロファイルにリージョンがない場合は
aws-vault exec --prompt ykman project1-longman-s3-ioで以下のエラーが返りました。そんなこんなで、最終的なconfigがこんな感じになりました(
s3-ioは検証用にS3フルアクセスを持つロールです)。