Submit Search
Upload
AWS CLIでAssumeRole
•
15 likes
•
12,140 views
T
Tetsunori Nishizawa
Follow
AWS CLIでAssumeRole
Read less
Read more
Technology
Report
Share
Report
Share
1 of 44
Download now
Download to read offline
Recommended
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation
Amazon Web Services Japan
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
Amazon Web Services Japan
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
Amazon Web Services Japan
Recommended
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
20190514 AWS Black Belt Online Seminar Amazon API Gateway
20190514 AWS Black Belt Online Seminar Amazon API Gateway
Amazon Web Services Japan
20200826 AWS Black Belt Online Seminar AWS CloudFormation
20200826 AWS Black Belt Online Seminar AWS CloudFormation
Amazon Web Services Japan
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am...
Amazon Web Services Japan
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
Amazon Web Services Japan
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ AWS IAM
Amazon Web Services Japan
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
Amazon Web Services Japan
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
Amazon Web Services Japan
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
Amazon Web Services Japan
AWSからのメール送信
AWSからのメール送信
Amazon Web Services Japan
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
Amazon Web Services Japan
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
Amazon Web Services Japan
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
Amazon Web Services Japan
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena
Amazon Web Services Japan
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
Amazon Web Services Japan
20120201 aws meister-reloaded-iam-and-billing-public
20120201 aws meister-reloaded-iam-and-billing-public
Amazon Web Services Japan
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
SORACOM, INC
More Related Content
What's hot
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
Amazon Web Services Japan
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ AWS IAM
Amazon Web Services Japan
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
Amazon Web Services Japan
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
Amazon Web Services Japan
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
Amazon Web Services Japan
AWSからのメール送信
AWSからのメール送信
Amazon Web Services Japan
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
Amazon Web Services Japan
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
Amazon Web Services Japan
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
Amazon Web Services Japan
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena
Amazon Web Services Japan
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
Amazon Web Services Japan
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
Amazon Web Services Japan
What's hot
(20)
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190129 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ AWS IAM
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
AWSからのメール送信
AWSからのメール送信
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20190220 AWS Black Belt Online Seminar Amazon S3 / Glacier
20200617 AWS Black Belt Online Seminar Amazon Athena
20200617 AWS Black Belt Online Seminar Amazon Athena
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS上でのActive Directory構築
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
Similar to AWS CLIでAssumeRole
20120201 aws meister-reloaded-iam-and-billing-public
20120201 aws meister-reloaded-iam-and-billing-public
Amazon Web Services Japan
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
SORACOM, INC
[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)
Amazon Web Services Japan
20111203
20111203
小野 修司
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
niwatako
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
AWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management Console
Amazon Web Services Japan
20061125
20061125
小野 修司
Developers.IO 2018 ビジネスを阻害しない!AWS アカウントの管理
Developers.IO 2018 ビジネスを阻害しない!AWS アカウントの管理
Nobuhiro Nakayama
Aws security part1
Aws security part1
隆博 田中
20101110 Tech02 ID 管理およびサービスの設定
20101110 Tech02 ID 管理およびサービスの設定
kumo2010
[AWSマイスターシリーズ] AWS SDK for Java / .NET
[AWSマイスターシリーズ] AWS SDK for Java / .NET
Amazon Web Services Japan
AAD authentication for azure app v0.1.20.0317
AAD authentication for azure app v0.1.20.0317
Ayumu Inaba
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Preferred Networks
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発
Kazuki Nakajima
JAWS-UG CLI #27 LT ActiveDirectoryのユーザとパスワードでManagement Consoleにログインする
JAWS-UG CLI #27 LT ActiveDirectoryのユーザとパスワードでManagement Consoleにログインする
Nobuhiro Nakayama
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリ
Kenji Otsuka
Well-Architected Framework Security Pillar Deep Dive ~セキュリティからはじめるより良い設計~
Well-Architected Framework Security Pillar Deep Dive ~セキュリティからはじめるより良い設計~
Nobuhiro Nakayama
Similar to AWS CLIでAssumeRole
(20)
20120201 aws meister-reloaded-iam-and-billing-public
20120201 aws meister-reloaded-iam-and-billing-public
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
IAM & Consolidated Billing -ほぼ週刊AWSマイスターシリーズ第4回
[AWSマイスターシリーズ]Identity and Access Management (IAM)
[AWSマイスターシリーズ]Identity and Access Management (IAM)
20111203
20111203
iOS の通信における認証の種類とその取り扱い
iOS の通信における認証の種類とその取り扱い
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
AWS Black Belt Techシリーズ AWS Management Console
AWS Black Belt Techシリーズ AWS Management Console
20061125
20061125
Developers.IO 2018 ビジネスを阻害しない!AWS アカウントの管理
Developers.IO 2018 ビジネスを阻害しない!AWS アカウントの管理
Aws security part1
Aws security part1
20101110 Tech02 ID 管理およびサービスの設定
20101110 Tech02 ID 管理およびサービスの設定
[AWSマイスターシリーズ] AWS SDK for Java / .NET
[AWSマイスターシリーズ] AWS SDK for Java / .NET
AAD authentication for azure app v0.1.20.0317
AAD authentication for azure app v0.1.20.0317
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
勉強会force#2 HTML5によるモバイルアプリ開発
勉強会force#2 HTML5によるモバイルアプリ開発
JAWS-UG CLI #27 LT ActiveDirectoryのユーザとパスワードでManagement Consoleにログインする
JAWS-UG CLI #27 LT ActiveDirectoryのユーザとパスワードでManagement Consoleにログインする
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリ
Well-Architected Framework Security Pillar Deep Dive ~セキュリティからはじめるより良い設計~
Well-Architected Framework Security Pillar Deep Dive ~セキュリティからはじめるより良い設計~
More from Tetsunori Nishizawa
はじめてのAWS設計でやりがちな失敗パターンまとめ
はじめてのAWS設計でやりがちな失敗パターンまとめ
Tetsunori Nishizawa
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
Tetsunori Nishizawa
インフラエンジニアのためのAWSサービスを利用したログ分析はじめの一歩
インフラエンジニアのためのAWSサービスを利用したログ分析はじめの一歩
Tetsunori Nishizawa
クラウド移行を終えてからが本番〜AWSの使いこなし術〜
クラウド移行を終えてからが本番〜AWSの使いこなし術〜
Tetsunori Nishizawa
オープンなクラウドの世界でエンジニアが楽しいと思うことを仕事にする方法
オープンなクラウドの世界でエンジニアが楽しいと思うことを仕事にする方法
Tetsunori Nishizawa
Amazon s3へのデータ転送における課題とその対処法を一挙紹介
Amazon s3へのデータ転送における課題とその対処法を一挙紹介
Tetsunori Nishizawa
EC2+RDSを基本から #cmdevio2017
EC2+RDSを基本から #cmdevio2017
Tetsunori Nishizawa
Jmespathをもっと広めたい
Jmespathをもっと広めたい
Tetsunori Nishizawa
More from Tetsunori Nishizawa
(8)
はじめてのAWS設計でやりがちな失敗パターンまとめ
はじめてのAWS設計でやりがちな失敗パターンまとめ
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
Amazon WorkSpaces導入からはじめるスケーラブルなオフィス運営と、業務システムのクラウド移行
インフラエンジニアのためのAWSサービスを利用したログ分析はじめの一歩
インフラエンジニアのためのAWSサービスを利用したログ分析はじめの一歩
クラウド移行を終えてからが本番〜AWSの使いこなし術〜
クラウド移行を終えてからが本番〜AWSの使いこなし術〜
オープンなクラウドの世界でエンジニアが楽しいと思うことを仕事にする方法
オープンなクラウドの世界でエンジニアが楽しいと思うことを仕事にする方法
Amazon s3へのデータ転送における課題とその対処法を一挙紹介
Amazon s3へのデータ転送における課題とその対処法を一挙紹介
EC2+RDSを基本から #cmdevio2017
EC2+RDSを基本から #cmdevio2017
Jmespathをもっと広めたい
Jmespathをもっと広めたい
AWS CLIでAssumeRole
1.
AWS CLIでAssumeRole
2.
前置き 設定は自己責任でお願いします。
3.
Temporary Security Credential AccessKeyId SecretAccessKey AccessKeyId SecretAccessKey SessionToken 期限なし認証
期限付き認証
4.
Temporary Security Credentialの種類 種別
説明 権限 GetSessionToken 自身の権限で一時認証 自身の権限と同じ クロスアカウント不可 MFA利用可 GetFederationToken 信頼ユーザで一時認証 自身の権限内で規定 クロスアカウント不可 MFA利用不可 AssumeRole IAMロールとマッピング IAMロールで規定 クロスアカウント可 MFA利用可 (参考)http://docs.aws.amazon.com/ja_jp/STS/latest/UsingSTS/Welcome.html#AccessingSTS
5.
Temporary Security Credentialの取得 Security
Token Service(STS)から取得 取得したTokenは有効期限が切れるまで無効 化できない(STSはTokenを払い出すところ だけやる) (参考)http://docs.aws.amazon.com/ja_jp/STS/latest/UsingSTS/DisablingTokenPermissions.html
6.
GetSessionToken
7.
GetSessionTokenのイメージ 期限なし認証を使って、STSから期限付き認証を取得 AccessKeyId SecretAccessKey AccessKeyId SecretAccessKey SessionToken
8.
GetSessionTokenのポイント 要求した人のアクセス権限そのまま MFA保護のAPIも利用可能
9.
AWS CLIでGetSessionToken (コマンド) $ aws
sts get-session-token (結果) { "Credentials": { "SecretAccessKey": "yyyyyyyy", "SessionToken": "zzzzzzzzzzzz", "Expiration": "2015-05-25T19:00:00Z", "AccessKeyId": "xxxx" } } ※KeyやTokenは実際にはもっと長い
10.
get-session-tokenで 使えるオプション --duration-seconds 有効期間(単位:秒)を設定 IAMユーザは、15m∼36h(デフォルト12h) AWSアカウントは、15m∼1h(デフォルト1h) --serial-number, --token-code MFA保護でも利用可能 (参考)http://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html
11.
期限付き認証の使い方 取得した期限付き認証を使いたい人に渡す 環境変数で指定 export AWS_ACCESS_KEY_ID=xxxx export AWS_SECRET_ACCESS_KEY=yyyyyyyy export
AWS_SESSION_TOKEN=zzzzzzzzzzzz configファイルで指定も可能 [profile temp-profile] aws_access_key_id=xxxx aws_secret_access_key=yyyyyyyy aws_session_token=zzzzzzzzzzzz ※credentialに記載の場合は"profile"は不要 (参考)http://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-getting-started.html
12.
(蛇足)期限付き認証ワンライナー aws sts get-session-token
¦ awk ' $1 == ""AccessKeyId":" { gsub(/"/,""); gsub(/,/,""); print "export AWS_ACCESS_KEY_ID="$2 } $1 == ""SecretAccessKey":" { gsub(/"/,""); gsub(/,/,""); print "export AWS_SECRET_ACCESS_KEY="$2 } $1 == ""SessionToken":" { gsub(/"/,""); gsub(/,/,""); print "export AWS_SESSION_TOKEN="$2 } '
13.
GetSessionTokenユースケース 同一アカウント内で特定のAPIにのみMFA保護 (参考)http://docs.aws.amazon.com/ja_jp/STS/latest/UsingSTS/permissions-get-session-token.html
14.
GetFederationToken
15.
GetFederationTokenのイメージ STSにFederated ユーザ作成を要求 Federated User Federated Userは要求の度に作られる ? Tokenと一緒に指定さ れた権限を付与
16.
GetFederationTokenのポイント 要求の度にFederated Userは作成される 発行の時にポリシー指定をしないと原則何も 権限が無い(リソースベースで明示的な許可 があればアクセス可) (参考)http://docs.aws.amazon.com/ja_jp/STS/latest/UsingSTS/permissions-get-federation-token.html
17.
AWS CLIでGetFederationToken (コマンド) $ FED_USER=feduser $
POLICY_FILE=policy.json $ aws sts get-federation-token --name ${FED_USER} --policy file://./${POLICY_FILE} ポリシーを定義したjson は事前に作成しておく
18.
(結果) { "FederatedUser": { "FederatedUserId": "111122223333:feduser", "Arn":
"arn:aws:sts::111122223333:federated-user/feduser" }, "Credentials": { "SecretAccessKey": "yyyyyyyy", "SessionToken": "zzzzzzzzzzzz", "Expiration": "2015-05-22T00:41:22Z", "AccessKeyId": "xxxx" }, "PackedPolicySize": 5 } ※KeyやTokenは実際にはもっと長い
19.
get-federation-tokenで 使えるオプション --duration-seconds 有効期間(単位:秒)を設定 IAMユーザは、15m∼36h(デフォルト12h) AWSアカウントは、15m∼1h(デフォルト1h) (参考)http://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html
20.
GetFederationTokenの使い方 前述の期限付き認証の使い方と同じ
21.
GetFederationTokenユースケース 開発者に本番環境のアカウントを期限付きで貸し出し 構築ベンダに期限付き認証で作業を依頼 デモやハンズオンでも使えそう
22.
AssumeRole
23.
AssumeRoleのイメージ STSにIAM ロールを要求 Tokenと一緒 にIAMロール 権限を付与 Trusted Entity Assumed
Role Assumed Roleは元のTrusted Entityとは別人 arn:aws:iam::111122223333:user/ IAM-User-AssumeTest arn:aws:sts::222233334444:assumed-role/ IAM-Role-AssumeTest/AssumeTest-Session
24.
AssumeRoleのポイント 権限は関連付けられたIAMロールで設定 クロスアカウント可能 MFA認証済みEntityのみ信頼する設定も可能 (参考)http://docs.aws.amazon.com/ja_jp/STS/latest/UsingSTS/permissions-get-federation-token.html
25.
IAMロールのポイント IAMロールは、Role Policyと AssumeRolePolicyDocument(Trust Relationship)の2要素で構成される AssumeRolePolicyDocumentで許可された Trusted Entityと組み合わせてRole
Policy権 限で動作する
26.
Trusted Entityになれる人 AssumeされるIAMロールの AssumeRolePolicyDocument(Trust Relationship)に 設定できる人 =少なくともPrincipalに指定できないとダメ AWSアカウント(root)はAssumeRoleできない
27.
Principal設定例 "Principal": {"AWS": "111122223333"} "Principal":
{"AWS": "arn:aws:iam::111122223333:root"} "Principal": {"AWS": "arn:aws:iam::111122223333:user/iam-user"} "Principal": {"AWS": "arn:aws:iam::111122223333:role/iam-role"} "Principal": {"Service": "ec2.amazonaws.com"} "Principal": {"Federated": "www.amazon.com"} (参考)http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#Principal
28.
Pricipal設定の注意 PrincipalにAWSアカウントを指定すると、全 てのIAMアカウントが許可対象となる IAMグループ単位でのPrincipal指定は不可 EC2サービスでPrincipal指定するのは、EC2 インスタンスプロファイル用
29.
(補足1) ユーザベース認証とリソースベース認証 Resourceで権限範囲を規定 Principalで権限範囲を規定 IAM STS、S3 bucket等 Resource, Principalで設定できるARNには、制限が多いので公式 ドキュメント確認と検証が必須(特にアスタリスク指定に注意) Actionとの組み合わせにも要注意 (参考)http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/PermissionsOverview.html
30.
AssumeRolePolicyDocumentの設定例 { "Version": "2012-10-17", "Statement": [ { "Sid":
"", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/IAM-User-AssumeTest" }, "Action": "sts:AssumeRole" } ] } ExternalId(ユニークなキー)やMFA必須も設定可能 "Condition": { "StringEquals": { "sts:ExternalId": "TestExternalId" }, "Bool": { "aws:MultiFactorAuthPresent": true } }
31.
AssumeRoleする側の設定例 $ IAM_USER_NAME=IAM-User-AssumeTest $ aws
iam get-account-authorization-details --filter User --query "UserDetailList[?UserName==`${IAM_USER_NAME}`]" [ { "UserName": "IAM-User-AssumeTest", "GroupList": [], "CreateDate": "2015-05-13T01:12:40Z", "UserId": "AIDAIN5BGYGE4BGFZ6ZL6", "Path": "/", "AttachedManagedPolicies": [ { "PolicyName": "BeforeAssumeRole-Policy", "PolicyArn": "arn:aws:iam::111122223333:policy/BeforeAssumeRole-Policy" } ], "Arn": "arn:aws:iam::111122223333:user/IAM-User-AssumeTest" } ] 一応ManagedPolicyを 使ってみた
32.
$ ATTACHED_USER_POLICY_NAME=`aws iam
list-attached-user-policies --user-name ${IAM_USER_NAME} --query "AttachedPolicies[0].PolicyName" --output text` $ aws iam get-account-authorization-details --filter LocalManagedPolicy --query "Policies[?PolicyName==`${ATTACHED_USER_POLICY_NAME}`]" [ { "PolicyName": "BeforeAssumeRole-Policy", "CreateDate": "2015-05-14T03:03:33Z", "AttachmentCount": 1, "IsAttachable": true, "PolicyId": "ANPAJOUZGMVOPZZI3FLDW", "DefaultVersionId": "v1", "PolicyVersionList": [ { "CreateDate": "2015-05-14T03:03:33Z", "VersionId": "v1", "Document": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222233334444:role/IAM-Role-AssumeTest", "Effect": "Allow" } ] }, "IsDefaultVersion": true } ], "Path": "/", "Arn": "arn:aws:iam::111122223333:policy/BeforeAssumeRole-Policy", "UpdateDate": "2015-05-14T03:03:33Z" } ] AssumeRoleする権限のみ付与 { "Action": "sts: AssumeRole", "Resource": "arn:aws:iam::222233334444:role/ IAM-Role-AssumeTest", "Effect": "Allow" }
33.
AssumeRoleされる側の設定例 $ IAM_ROLE_NAME=IAM-Role-AssumeTest $ aws
iam get-account-authorization-details --filter Role --query "RoleDetailList[?RoleName==`${IAM_ROLE_NAME}`]" [ { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::111122223333:user/IAM-User-AssumeTest" }, "Effect": "Allow", "Sid": "" } ] }, "RoleId": "AROAJAF2IVAI6NIZZ3X34", "CreateDate": "2015-05-14T04:07:58Z", "InstanceProfileList": [], "RoleName": "IAM-Role-AssumeTest", "Path": "/", "AttachedManagedPolicies": [ { "PolicyName": "AfterAssumeRole-Policy", "PolicyArn": "arn:aws:iam::222233334444:policy/AfterAssumeRole-Policy" } ], "RolePolicyList": [], "Arn": "arn:aws:iam::222233334444:role/IAM-Role-AssumeTest" } ] 前述の AssumeRolePolicyDocument 一応ManagedPolicyを 使ってみた
34.
$ ATTACHED_ROLE_POLICY_NAME=`aws iam
list-attached-role-policies --role-name ${IAM_ROLE_NAME} --query "AttachedPolicies[0].PolicyName" --output text` $ aws iam get-account-authorization-details --filter LocalManagedPolicy --query "Policies[?PolicyName==`${ATTACHED_ROLE_POLICY_NAME}`]" [ { "PolicyName": "AfterAssumeRole-Policy", "CreateDate": "2015-05-14T04:10:33Z", "AttachmentCount": 2, "IsAttachable": true, "PolicyId": "ANPAJTNO5P4GDC4GTFPC2", "DefaultVersionId": "v1", "PolicyVersionList": [ { "CreateDate": "2015-05-14T04:10:33Z", "VersionId": "v1", "Document": { "Version": "2012-10-17", "Statement": [ { "Action": "s3:*", "Resource": "*", "Effect": "Allow" } ] }, "IsDefaultVersion": true } ], "Path": "/", "Arn": "arn:aws:iam::222233334444:policy/AfterAssumeRole-Policy", "UpdateDate": "2015-05-14T04:10:33Z" } ] S3フルアクセス権限のみ付与する例 { "Action": "s3:*", "Resource": "*", "Effect": "Allow" }
35.
AWS CLIでassume-role (コマンド) $ AWS_ID=222233334444 $
IAM_ROLE_NAME=IAM-Role-AssumeTest $ IAM_ROLE_ARN=arn:aws:iam::${AWS_ID}:role/${IAM_ROLE_NAME} $ ROLE_SESSION_NAME=AssumeTest-Session $ aws sts assume-role --role-arn ${IAM_ROLE_ARN} --role-session-name ${ROLE_SESSION_NAME} 任意のセッション名
36.
(結果) { "AssumedRoleUser": { "AssumedRoleId": "AROAJAF2IVAI6NIZZ3X34:AssumeTest-Session", "Arn":
"arn:aws:sts::222233334444:assumed-role/IAM-Role-AssumeTest/AssumeTest-Session" }, "Credentials": { "SecretAccessKey": yyyyyyyy", "SessionToken": "zzzzzzzzzzzz", "Expiration": "2015-05-25T19:00:00Z", "AccessKeyId": "xxxx" } }
37.
assume-roleで使えるオプション --duration-seconds 有効期間(単位:秒)を設定 15m∼1h(デフォルト1h) --external-id 任意のユニークな文字列を指定可能 ※AssumeRolePolicyDocumentのConditionと組み合わせて利用 --serial-number, --token-code MFA保護でも利用可能 ※AssumeRolePolicyDocumentのConditionと組み合わせて利用 (参考)http://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html
38.
Assumed Roleの使い方 前述の期限付き認証の使い方と同じ
39.
(補足2)configファイル利用で 簡単にAssumeRole [profile assumed] role_arn =
arn:aws:iam::222233334444:role/IAM-Role-AssumeTest source_profile = IAM-User-AssumeTest 上記設定で、Assumed Roleがprofileの1つ(--profile)として利用できる source_profileを指定する場合は、事前設定が必要 期限が切れても自動更新されるのでセキュリティに要注意 (参考)http://dev.classmethod.jp/cloud/aws/aws-cli-supports-assume-role-credentials-provider-and-mfa/
40.
(補足3)Mangement Consoleでも AssumeRole(Switch Role) 元アカウントでManagement
Consoleログインできる状 態で前述の設定をすると、Mangement Consoleでも Switch Roleできてしまう セキュリティに要注意 (参考)http://dev.classmethod.jp/cloud/aws/switching-to-a-iam-role/
41.
AssumeRoleのユースケース 複数のAWSアカウントを利用して作業する際に、多く のIAMパスワードを管理したくない
42.
(補足4) EC2インスタンスプロファイルも実装は同じ $ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/EC2RoleTest { "Code"
: "Success", "LastUpdated" : "2015-05-14T09:36:35Z", "Type" : "AWS-HMAC", "AccessKeyId" : "xxxx", "SecretAccessKey" : "yyyyyyyy", "Token" : "zzzzzzzzzzzz", "Expiration" : "2015-05-14T16:00:15Z" } CLIでIAMロールを作成する場合、Instance Profileは別途作成、ロールへの割当 が必要な点に注意 $ aws iam create-instance-profile --instance-profile-name ${INSTANCE_PROFILE_NAME} $ aws iam add-role-to-instance-profile --role-name ${IAM_ROLE_NAME} --instance-profile-name ${INSTANCE_PROFILE_NAME}
43.
(補足5)期限付き認証で Mangement Consoleログインも可能 Assumed RoleとFederated
User用にURLを作成して、 AWS Management Consoleにログインすることも可能 (参考)http://docs.aws.amazon.com/ja_jp/STS/latest/UsingSTS/STSMgmtConsole-manualURL.html (参考)http://www.infilic.co.jp/tech/?p=597
44.
まとめ 期限付き認証を利用は十分注意して設定する IAMロールの動作理解を深める為に勉強しておくと良 いと思われる Cognitoを使っていくことが望ましい(要検証)
Download now