<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>AWS on mine6ra's blog</title><link>https://blog.mine6ra.me/categories/aws/</link><description>Recent content in AWS on mine6ra's blog</description><generator>Hugo -- 0.143.1</generator><language>ja</language><copyright>CC BY-NC-SA 4.0</copyright><lastBuildDate>Tue, 21 Jul 2020 00:15:46 +0900</lastBuildDate><atom:link href="https://blog.mine6ra.me/categories/aws/index.xml" rel="self" type="application/rss+xml"/><item><title>AWS CLI を AssumeRole と MFA で使う</title><link>https://blog.mine6ra.me/posts/assume-role-from-aws-cli/</link><pubDate>Mon, 20 Jul 2020 22:51:53 +0900</pubDate><guid>https://blog.mine6ra.me/posts/assume-role-from-aws-cli/</guid><description>&lt;ul>
&lt;li>AWS CLI で AWS にアクセスする際に AssumeRole で別の AWS アカウントの IAM ロールを引き受け、更に MFA でログインする。&lt;/li>
&lt;/ul>
&lt;h2 id="前提条件">前提条件&lt;/h2>
&lt;ul>
&lt;li>AWS CLI をインストールしていること。&lt;/li>
&lt;li>IAM に AssumeRole の権限が付与されている。&lt;/li>
&lt;li>MFA の設定が済んでいる。&lt;/li>
&lt;/ul>
&lt;h2 id="事前に確認しておく情報">事前に確認しておく情報&lt;/h2>
&lt;ul>
&lt;li>アクセスキー&lt;/li>
&lt;li>シークレットアクセスキー&lt;/li>
&lt;li>AssumeRole で引き受けるロール ARN&lt;/li>
&lt;li>MFA の ARN&lt;/li>
&lt;/ul>
&lt;h2 id="初期設定">初期設定&lt;/h2>
&lt;ul>
&lt;li>AWS のアクセスキーとシークレットアクセスキーを設定する。&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">$ aws configure
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">AWS Access Key ID &lt;span class="o">[&lt;/span>None&lt;span class="o">]&lt;/span>:&amp;lt;アクセスキー&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">AWS Secret Access Key &lt;span class="o">[&lt;/span>None&lt;span class="o">]&lt;/span>:&amp;lt;シークレットアクセスキー&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Default region name &lt;span class="o">[&lt;/span>None&lt;span class="o">]&lt;/span>:ap-northeast-1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Default output format &lt;span class="o">[&lt;/span>None&lt;span class="o">]&lt;/span>:text
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>上記のコマンドを実行すると入力した情報が保存されたファイルが作成される。&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-txt" data-lang="txt">&lt;span class="line">&lt;span class="cl">~/.aws
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ├ config
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └ credentials
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>&lt;code>~/.aws/config&lt;/code>を下記のように変更する。&lt;/li>
&lt;li>profile_name:任意の名前。CLI を開くたびに入力するため入力しやすいものがおすすめ。&lt;/li>
&lt;li>role_arn:AssumeRole するロール ARN。&lt;/li>
&lt;li>mfa_serial:MFA デバイスの ARN。&lt;/li>
&lt;li>source_profile:スイッチロール元のプロファイル名。&lt;/li>
&lt;/ul>
&lt;pre tabindex="0">&lt;code>[default]
region = ap-northeast-1
output = text
[profile profile_name]
role_arn = arn:aws:iam::yyyyyyyyyyyy:role/zzz
mfa_serial = arn:aws:iam::xxxxxxxxxxxx:mfa/name
region = ap-northeast-1
source_profile = default
&lt;/code>&lt;/pre>&lt;h2 id="cli-で-assumerole-できるか確認">CLI で AssumeRole できるか確認&lt;/h2>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">$ &lt;span class="nb">export&lt;/span> &lt;span class="nv">AWS_DEFAULT_PROFILE&lt;/span>&lt;span class="o">=&lt;/span>上記で設定したprofile_name
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">$ aws sts get-caller-identity
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Enter MFA code &lt;span class="k">for&lt;/span> arn:aws:iam::XXXXXXXXXXXX:mfa/AAAA:&amp;lt;MFAコードを入力する&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;ul>
&lt;li>MFA コード入力後に表示される AccoutID がスイッチロール先の AWS アカウントになっていれば成功。&lt;/li>
&lt;/ul>
&lt;h2 id="参考">参考&lt;/h2>
&lt;p>&lt;a href="https://dev.classmethod.jp/articles/cli-switch-role/">【小ネタ】AWS CLI でスイッチロールして作業を行うための設定をやってみた&lt;/a>&lt;/p></description></item></channel></rss>