10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS】CloudshellでAssumeRoleできるCredential設定を書く

Last updated at Posted at 2020-12-16

本日発表の期待のサービス
会社ではマルチアカウント運用しているので、早速Assume/credenatial周りを確認してみた

TL;TD

  • .aws/credentialファイルを作成して、こんな感じに記述する
[test-assume]
role_arn = arn:aws:iam::xxxxxxxxxxx:role/test-asusme
credential_source = EcsContainer

AWSCLIのAsusmeRoleの仕組み

cloudshellでは?

環境変数を調べてみると中身がECSであることがわかる。

[cloudshell-user@ip-10-0-109-14 ~]$ export
declare -x AWS_CONTAINER_AUTHORIZATION_TOKEN="4KvGlp2UOabY3yGBXQqizTgQXXXXXXXXXXXXXXX"
declare -x AWS_CONTAINER_CREDENTIALS_FULL_URI="http://localhost:1338/latest/meta-data/container/security-credentials"
declare -x AWS_DEFAULT_REGION="ap-northeast-1"
declare -x AWS_EXECUTION_ENV="CloudShell"
declare -x AWS_REGION="ap-northeast-1"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/home/cloudshell-user"
declare -x HOSTNAME=""
declare -x LC_ALL="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="cloudshell-user"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/cloudshell-user"
declare -x NODE_PATH="/usr/lib/node_modules"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/cloudshell-user/.local/bin:/home/cloudshell-user/bin"
declare -x PWD="/home/cloudshell-user"
declare -x SHLVL="1"
declare -x TERM="linux"
declare -x USER="cloudshell-user"
declare -x WSEP_TTY="true"
declare -x maxNumberOfSessions="10"
declare -x serverSocket="/aws/mde/.controller/mde.sock"

なので、credential_sourceをEcsContainer にしてみると、、見事成功

[test-assume]
role_arn = arnの:aws:iam::xxxxxxxxxxx:role/test-asusme
credential_source = EcsContainer
[cloudshell-user@ip-10-0-109-14 ~]$ aws sts get-caller-identity
{
    "UserId": "AIDA3XXXXXXXXXXXXX",
    "Account": "XXXXXXXXXXXX",
    "Arn": "arn:aws:iam::XXXXXXXXXXXXXX:user/willco21"
}
cloudshell-user@ip-10-0-109-14 ~]$ aws sts get-caller-identity --profile test-asssume
{
    "UserId": "AROAXXXXXXXXXXXXXX:botocore-session-1608088390",
    "Account": "XXXXXXXXXXXX",
    "Arn": "arn:aws:sts::XXXXXXXXXXXXXX:assumed-role/test-assume/botocore-session-1608088390"
}
(編集済み)

感想

  • 基本的に欲しい機能はそろっている感じです。Assumeroleは不安でしたが問題なくできてよかったです
  • 今後は自分のアクセスキーを発行してAWSAPIテストすることはなくなるかなー。安全になるし、嬉しいです
10
4
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
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?