AWS プロファイルの仕様
設定の「AWS プロファイル/SSM」で登録する AWS プロファイルの、細かい規則をまとめています。 使いかたは AWS SSO を使う にあります。
ログインと状態
Section titled “ログインと状態”プロファイルの各行にはログインがあり、Console から離れずにそのプロファイルで IAM Identity Center にログインできます。
押すとログインの画面が開き、ログインのコードはそこでログインを押したときに初めて作られ、その画面にだけ表示されます。
このログインは、そのプロファイルの SSM セッションと af-aws-exec に効きます。アカウントとロールの両方がないプロファイルと、
別の表示名と同じ名前になるプロファイル(af-aws-exec)では押せません。
表示名の横のバッジはログインの状態を示します:ログイン済み、使うときに更新(アクセストークンは期限切れで、
ポータルのセッションが続いていれば次に使うときに更新される)、未ログイン。残り時間は出しません。ワークスペースに
分かるのはアクセストークンの期限(1 時間ほど)だけで、ポータルのセッションがいつ終わるかは分からないためです。
ログインが切れる前の警告は、更新できないログインだけです。 設定からの通常のログインは、ポータルのセッションが終わるまで
使うたびに更新され、その終わりはワークスペースが読める場所に記録されません。そのため前もっては知らせません。ポータルが
終わらせると、次のコマンドがログインを依頼します(AWS SSO を使う)。キャッシュに更新の手段がない(リフレッシュトークンがない、または
ログイン用クライアントの登録が期限切れ)ときだけ終わりが分かり、Console がプロファイルごとに 1 回、終わりの 10〜15 分ほど前に
「AWS のログインが … に切れます」のトースト(と通知)を、残り時間のカウントダウン付きで出します。ログインで同じログイン画面が開きます。ログインし直すと消え、
閉じるとそのタブではその期限について出なくなります。管理ブロックに入っていないプロファイル(af-aws-exec --list を参照)は
知らせません。
1 つのプロファイルからログアウトする。 ログイン中(または使うときに更新)の行にはログアウトがあります。ここと、
WS バーの AWS バッジのポップオーバーの両方にあります。確認すると、ワークスペースはそのプロファイルのログインを AWS 側でも
終わらせ、キャッシュされたログインとロールの認証情報を削除します。これに従わないプロファイルはログインしたままです。ロールを引き受けるプロファイル(ロールの引き受け)がこのプロファイルに従っているときは、
確認の画面が先にその名前を示し、一緒にサインアウトされます。実行中のコマンドが
すでに受け取った認証情報は期限まで有効です(AWS には取り消す手段がありません)。問題になるならそのコマンドを止めてください。
アクセストークンが期限切れの行(使うときに更新)は、ログアウトが AWS に届くよう先に更新します。AWS がログインはもう
終わっていると答えたときは、通常のログアウトになります。AWS に届かない・それ以外の理由で更新に失敗した・ログアウトそのものを
断られた・ログインに更新の手段がない、のいずれかのときも、ワークスペースからはログアウトし、Console がその旨を伝えます。このとき AWS 側のログインは期限まで
有効なままの可能性があります。この目的で aws sso logout は使わないでください。--profile に関係なく全プロファイルを
一度にログアウトさせます。
取り込みの規則
Section titled “取り込みの規則”手元の PC から移るときは、プロファイル一覧の下の 「~/.aws/config から取り込む」 で、そのファイルを読んで プロファイルを作れます(手で打ち直す必要はありません)。ファイルを選ぶか中身を貼り付けます。読むのは このブラウザの中だけで、送るのはチェックしたプロファイルの設定項目だけです(フォームの保存と同じ経路)。 ワークスペースが止まっていても使えます。
プレビューには、ファイルにあるすべてのプロファイルと、その扱いが並びます。
- 作成(SSO):ポータル・SSO リージョン・アカウント・ロールがそろったプロファイル(
sso_session形式でも、 古いsso_*を直接書く形式でも)。 - 作成(ロールの引き受け):
role_arn+source_profileで、引き受け元が上の SSO プロファイルのもの。 引き受け元はファイル内でも、Settings に登録済みのものでもかまいません(ポータル・SSO リージョン・アカウント・ ロールが同じときだけ)。引き受け元がファイルにないときは、使う Settings のプロファイルを選びます。その行には 「あなたが選んだ接続先で、手元と同じとは確かめていない」と出ます。 - 同じものが登録済み:Settings に同じプロファイルがあります。何も変えません。
- 取り込めません(理由つき):アクセスキー、
credential_process、mfa_serial、credential_source、web_identity_token_file、login_session、認証の方法が 2 つ以上([DEFAULT]から継いだキーを含む)、 ロールからさらにロールを引き受けるもの、アカウントとロールがそろわない SSO、sso-sessionと値が食い違うキーがあるもの (AWS CLI も断ります)、Settings が持てない値、 名前が使用済み・ほかと同じ AWS プロファイル名になるもの。
行ごとにチェックを外す、表示名を変える([default] はこれが必要です。default は Settings の名前にできません)、
ロールのセッション時間(900〜3600 秒)を直す、ができます。引き受け元の名前を変えても、それを使うロールは
付いてきます。
- 秘密は取り込みません。 テキストにアクセスキーがあるとそう表示します。そのテキストはほかに貼らないで
ください。読むのは
~/.aws/configだけで、~/.aws/credentialsは求めません。 - AWS CLI が読めないファイル(同じセクション・キーが 2 回、セクションより前のキー)は、行番号つきで断ります。
- サインインは手元のものに合わせます。 SSO プロファイルの各行にはサインイン名があり、手元で 1 つのログインを
共有していたプロファイルはここでも 1 つ共有するよう提案されます(共有サインイン)。
[sso-session <名前>]を使うプロファイルはサインイン<名前>に、sso_start_urlを直接書いた古い形のプロファイルは ポータル(start URL と SSO リージョン)ごとに 1 つのサインインになり、名前はポータルのホストの先頭部分です (https://d-1234567890.awsapps.com/startならd-1234567890)。名前を変えると、手元で同じログインを共有していた全行に効きます。 空にするとそのプロファイルは専用のログインになります。英数字と._@-で 1〜61 文字に収まらない名前、 別の start URL か SSO リージョンですでにあなたのサインインが使っている名前、専用のサインインの別のプロファイルが すでにその名前でログインしている名前は、それぞれ理由つきで行に表示されます。名前を直すか、行のチェックを外して ください。プレビューにはログインが何回必要か(新しいサインインごとに 1 回、専用のサインインのプロファイルごとに 1 回)が 出ます。サインインの一覧を読めないときはそう表示し、すべてのプロファイルをそれぞれ専用のサインインで取り込みます。 - リージョンを書いていないプロファイルは SSO リージョン(ロールは引き受け元のもの)を使います。手元では環境変数で 決まっていたかもしれません。プレビューに各行のリージョンが出ます。
- 同じ選び方でもう一度取り込んでも、何も増えません。途中で止まったときは、もう一度ファイルを読めば、作成済みの ものは「登録済み」と出て、残りを取り込めます。
書き出しの規則
Section titled “書き出しの規則”「~/.aws/config として書き出す」(取り込みの隣)は、Settings のプロファイルから AWS 設定ファイルのテキストを作り、
agent-fleet-aws-profiles.aws-config-fragment.txt としてダウンロードします。作成はブラウザの中で、何も送信しません。
これは手元の ~/.aws/config に手で取り込むための断片で、置き換え用ではありません。 入るのは Agent Fleet が
表現できるもの(SSO プロファイルと、それぞれ独自の sso-session、そこから引き受けるロール)だけなので、これで
自分のファイルを置き換えると、アクセスキー・MFA・credential_process のプロファイルや既存の [default] が消えます。
ファイル名を config にしないのもそのためです。
ダイアログには、除外したプロファイルが理由つきで並びます:
defaultという名前(予約名);- 表示名が同じ AWS プロファイル名になる 2 つ(
prod app/prod-app):どちらかの名前を変えるまで両方を除外します (ワークスペースの~/.aws/configと同じ扱い); - アカウントとロールの両方がない SSO プロファイル;
- AWS 設定に書けない値(書き出す前に、ワークスペースと同じ規則ですべての値を確かめるので、保存された値が別の設定や セクションを紛れ込ませることはありません);
sso-sessionが別のサインイン・別のプロファイル・別のポータルとも共有になるプロファイル(同じ名前のサインインと プロファイル、ポータルが食い違うメンバーなど):名前かポータルがそろうまで、該当するものをすべて除外します;- 引き受け元が除外された・存在しない・SSO プロファイルでないロール。
SSO プロファイルはそれぞれ独自の sso-session(af-<名前>)で書かれるため、手元でもプロファイルごとにログインが必要です。
共有サインインのメンバーは 1 つの [sso-session af-<サインイン名>] を共有するので、手元でも 1 回のログインで全員分になります。
共有サインイン
Section titled “共有サインイン”アカウントやロールが違う複数のプロファイルでも、IAM Identity Center のポータルは 1 つ ということがよくあります(手元のマシンで 1 つの [sso-session] を共有しているのと同じ状態です)。それらを 1 つの 共有サインイン に入れると、ワークスペースはプロファイルごとではなく、全員分で 1 回 だけそのポータルにログインします。
作成と参加。 プロファイルのフォームの サインイン で選びます。
| 選択 | 動作 |
|---|---|
| 専用のサインイン(既定) | これまでどおりです。プロファイルは専用のログインと、専用の start URL・SSO リージョンを持ちます。 |
| 自分のサインインのどれか | そのサインインに参加します。start URL と SSO リージョンはサインインのものを使い、入力し直しません。 |
| 新しい共有サインイン… | 入力した名前と start URL・SSO リージョンでサインインを作り、プロファイルをそこに入れます。 |
サインイン名は英数字と . @ - で 1〜61 文字です。ワークスペースではそのログインを af-<名前> と呼びます。保存は次の理由で断られることがあり、そのときは理由が表示されます。
- 別の start URL か SSO リージョン:選んだサインインは別のポータルを使っています。サインインに入ったプロファイルは常にサインインのポータルを使います。本当にポータルが変わったなら、サインインの見出しで変更してください。
- 名前が使われている:専用のサインインの別のプロファイルがその名前です。別のサインイン名にするか、そのプロファイルの名前を変えてください。
- 同じ名前のサインインがすでにある:一覧から選ぶと参加できます。
一覧。 サインインのプロファイルは 1 つの見出しの下にまとめて表示されます。見出しにはサインイン名とポータルがあり、ログイン状態・ログイン・ログアウト も見出しに 1 つずつだけ並びます。メンバーの行にはアカウント・ロール・リージョンが残り、ログインボタンはありません。専用のサインインのプロファイルは、これまでどおり自分の行を持ちます。
ログアウト すると(見出しから、または WS バーの AWS バッジのメンバーから)、すべての メンバーがサインアウトします。メンバーのどれかに従うロール引き受けプロファイルも同じです。確認ダイアログが先にそれらを一覧で示します。
サインインの改名・ポータルの変更。 見出しの 編集 でどちらも変更できます。どちらを変えてもすべてのメンバーがサインアウトします。改名するとログインの名前が変わりますし、古いポータルのトークンが新しいポータルに使われることはないからです。確認ダイアログがそのことを説明してメンバーを示し、変更後のメンバーには 要再ログイン が表示されます。
すでにあるプロファイルをまとめる。 専用のサインインのプロファイルにチェックを入れ(各行の先頭のチェックボックス。SSO プロファイルだけ)、一覧の下の サインインを共有 を押します。start URL と SSO リージョンが同じである必要があり、違うとボタンは押せず理由が出ます。ダイアログは今サインイン中のメンバーの名前を提案するので、そのログインがグループに残ります(後述)。別の名前を入力することもできます。保存の前に名前を確認し、使えない名前、別のポータルの既存サインインの名前、チェックしていない専用のサインインのプロファイルの名前は、理由つきで断ります。各プロファイルはフォームと同じ保存で 1 つずつ保存され、最初の 1 つがサインインを作ります。途中で保存に失敗したときはダイアログが開いたまま、各プロファイルが移ったかどうかを理由つきで一覧し、失敗したものは元のサインインのままです。やり直すを押すと、それらだけを移します。中途半端な状態が表示されずに残ることはありません。
まとめるときにログインを残す。 今ログインしているプロファイルの名前をサインインの名前にすると、そのプロファイルのログインがサインインのものになり、誰もログインし直さずに済みます。ほかの名前にした場合、サインインはサインアウトした状態で始まるので、1 回ログインが必要です。サインインを抜ける(専用のサインイン を選ぶ)と、プロファイルは再び専用のログインになるので、やはりログインが必要です。
制限:
- 知らないうちにまとめられることはありません。取り込みの提案(プレビューで見えて、変更できます)を除き、同じポータルでもサインインに入っていない 2 つのプロファイルや、別々のサインインに入ったプロファイルは、それぞれ別にログインします。
- メンバーの SSM ホストで ログインし直す を使うと共有のログインが消え、すべてのメンバーがサインアウトします。
- 自分の
~/.aws/configに[sso-session af-<サインイン名>]があると、自分で定義したプロファイル名の場合と同じく、そのサインインのメンバーは全員書き出されません(理由はaf-aws-exec --listで確認できます)。 - キャッシュされたログインは、作られたときのサインイン(またはプロファイル)とポータルに結び付きます。別の持ち主や別のポータル向けに作られたログインは使われません。ワークスペースはそれを脇に移し、それを使って取得したロールの認証情報を削除して、新しいログインを求めます。
- サインインからログアウトすると、メンバーが参加する前に持っていた専用のログインも削除されます。ただし、それが確かにそのメンバーのもので、ほかに同じ名前を使うものがない場合に限ります。
~/.aws/configからの取り込みは、提案されたサインインにプロファイルを入れます。同じポータルに同名のサインインがすでにあれば、作成したプロファイルはそこに参加します。
ロールの引き受け
Section titled “ロールの引き受け”アカウントへのアクセスが、IAM Identity Center のサインインを信頼するロール経由なら、~/.aws/credentials に長期キーを
置く必要はありません。設定 > AWS プロファイル/SSM で、種類 「別のプロファイルからロールを引き受ける」 のプロファイルを
追加します。
| 項目 | 意味 |
|---|---|
元のプロファイル(sourceProfileId) |
ロールを引き受ける元になる SSO プロファイル。必須。SSO プロファイルに限り、別の「ロールを引き受ける」プロファイルは選べません。 |
ロール ARN(roleArn) |
arn:aws:iam::<アカウント>:role/<名前>。必須。プロファイルのアカウントはここから決まります。 |
外部 ID(externalId)・セッション名(sessionName)・有効期間(durationSeconds、900〜3600。ロールチェーンは AWS の制限で 1 時間まで) |
任意の AssumeRole パラメータ。 |
既定のリージョン(region) |
任意。空なら元のプロファイルのリージョン。 |
秘密情報は保存も書き出しもされません。プロファイルは ~/.aws/config の管理ブロックに
role_arn + source_profile = <元のプロファイル名> として書き出されるので、aws --profile <名前>・SDK・af-aws-exec が
ほかの設定済みプロファイルと同じように使え、SSM のホストからも選べます。
- 対象ロールの信頼ポリシーが、元のアカウントにあるあなたの Identity Center ロール(
AWSReservedSSO_<権限セット>_*)を 許可している必要があります。 - 自分のサインインはありません。行の ログイン は元のプロファイルへのサインインで、状態も元のプロファイルに従います。
行の ログアウト は元のプロファイルのログインを終わらせます(連鎖するプロファイルに自分のログインはありません)。
元のプロファイルとそれに従うすべてのプロファイルがサインアウトされ、確認の画面が先にそれらの名前を示します。確認しなければ何もログアウトしません。WS バーの AWS バッジのポップオーバーでは
「<元のプロファイル> のログインに従います」 と出て、元のプロファイルがないか書き出されていないときは 元プロファイルなし と
出ます。バッジはログインを数えるので、ログイン中の数(「1/3」など)に連鎖するプロファイルは入りません。
af-aws-exec --profile <名前> -- <コマンド>は--accountが要りません(ロールのアカウントと、AWS が返すアカウントを 照合します)。元のプロファイルにログインしていないときは、元のプロファイルの名前で Console に依頼します。 - 元のプロファイルが書き出されている間だけ書き出されます。元の名前を自分の
~/.awsで定義している、または[DEFAULT]の 行が壊す場合は、連鎖するプロファイルも書き出されず(理由はaf-aws-exec --list)、自分のキーから連鎖が始まることはありません。 - ほかのプロファイルが元にしている間は、そのプロファイルを削除することも、「ロールを引き受ける」種類に変えることもできません。
- 設定の書き出しでは、元のプロファイルをラベルで記録します。取り込みでは、ラベルが完全に同じで、サインイン(開始 URL・ SSO リージョン・アカウント・ロール)も同じプロファイルがすでにあるか同じファイルにあるときだけ追加し、それ以外は飛ばします。
AWS バッジ
Section titled “AWS バッジ”ワークスペースが動いていて、設定に AWS プロファイルが 1 つ以上あると、WS バーに AWS のマークのバッジが出ます。
ログイン済みのプロファイルがちょうど 1 つならその名前を、それ以外は数を(「1/3」なら 3 つのうち 1 つがログイン済み。
使うときに更新のログインもログイン済みに数えます)示します。別のプロファイルからロールを引き受けるプロファイルは
それ自体にはログインしないので、数には入りません。何かがログイン済みなら緑、何もなければ枠だけ、
どれかのログインがまもなく切れるときは琥珀色です(ログインと状態の警告と同じ条件)。琥珀色のときの
ツールチップは「AWS プロファイル: まもなく切れるログインがあります」です。押すと一覧が開きます。各プロファイルの状態
(ログイン済み/使うときに更新/未ログイン)、名前・アカウント・ロール、終了時刻が分かっている行には
{時刻} に終了(まもなく切れるなら琥珀色)、未ログインまたはまもなく切れる行にはログイン、
ログイン済みの行にはログアウト(ログインと状態)が並びます。ロールを引き受けるプロファイルの行は
「{元} のログインに従います」(元がない、または書き出されていないときは 元プロファイルなし)と読め、
ログインは元プロファイルへのログインに、ログアウトは元プロファイルのログインを終わらせる操作になります(確認の画面で元プロファイルを示します)。既定のプロファイルはありません。ログイン済みの
プロファイルはどれも同時に使え、コマンドごとに af-aws-exec --profile <名前> で選びます。下の AWS プロファイルの設定で
設定のタブが開きます。一覧は、ワークスペースの起動時、開いたとき、ログイン・ログアウトの後、分かっているログインの終了時刻を
過ぎたときに更新されます。