[解決済み] AWSのロールを "アサイン "するとはどういうことですか?
質問
質問
AWSにおけるAssume"の意味と、その定義は?
背景
役割を想定して が頻繁に使用され、その定義と実際の意味を理解しようとしている。
プリンシパル(IAMユーザー、EC2インスタンスで動作するアプリケーションなど、AWSリソースにアクセスするためのアクションを呼び出すもの)が、AWSリソースにアクセスするためのアクションを呼び出す必要がある場合だと思います。
-
AWS (API? or some Authorisation runtime in AWS?) は、プリンシパルに付与できるロールを特定する。
例)EC2ユーザーがassume-role APIコールを実行し、IAMプロファイルが設定されたEC2インスタンス内のAWSリソースにアクセスするアプリケーションを実行するよう指定した場合。- EC2 IAMプロファイルに含まれるすべてのIAMロール
- assume-roleコールで要求されたIAMロールとポリシー
-
EC2ユーザーに付与されるIAMロール
-
AWSは、原則がリソース上でアクションを行うことを許可するポリシー(アクション、リソース)を持つロールを、ロールから見つけます。
- AWSは、原則のロールを特定されたロールに切り替えます。
ステップ3が完了すると、quot;the principal has assumed the role"と表示されます。これは正しいのでしょうか?
研究
IAMユーザー、アプリケーション、またはサービスが、作成したロールを使用する前に、ロールに切り替えるための権限を付与する必要があります。IAMユーザーのグループまたはユーザー自身に関連付けられたポリシーを使用して、必要なパーミッションを付与することができます。
解決するには?
ロールを引き受けるとは、Security Token Service(STS)に、引き受けたいロールに固有の一時的な認証情報(ロール認証情報)のセットを提供してもらうことを意味します。 (具体的には、そのロールを持つ新しいセッションです)。
このリクエストには、オプションでポリシーを含めることができます。このポリシーは、一時的な資格情報の許可を、ロールのポリシーで許可されたもののサブセットのみに制限する役割を果たします。
その後、この資格情報を使って、さらにリクエストを行う。 これらの認証情報は、access-key-id と secret を持つ IAM ユーザー認証情報に似ていますが、アクセスキーは
ASIA
の代わりに
AKIA
そして、セキュリティ・トークンと呼ばれる3番目の要素があり、これは一時的な資格情報で署名されたリクエストに含まれなければなりません。
これらの一時的な資格情報を使ってリクエストを行うと、新しいIDを取得したことになるので、ロールに関連する権限を持ち、自分自身の権限(持っている場合)は持ちません。 CloudTrail を使用して、ロールの資格情報を、そのロールを引き受けたユーザーまでさかのぼることができますが、そうでなければ、サービスは誰が資格情報を使用しているのかを認識することはできません。
tl;dr: ロールを引き受けることは、ロールを引き受けたエンティティではなく、ロールに関連付けられた一時的なクレデンシャルのセットを取得することを意味します。
<ブロッククオートAWS (API? or some Authorisation runtime in AWS?) は、プリンシパルに付与できるロールを特定します。
いいえ、あなたが希望するロールを指定します。
EC2インスタンス上で動作するコードで、インスタンスがインスタンスロールを持っている場合、EC2インフラストラクチャは実際にインスタンスの代わりにassume-roleを呼び出し、一時的なクレデンシャルを インスタンスメタデータサービス . これらの資格情報は、インスタンス内からのみアクセス可能で、インスタンス上には保存されません。
Lambda関数を実行する際、LambdaインフラストラクチャはSTSに連絡し、一時的な認証情報を 環境変数 . 繰り返しになりますが、これらの認証情報は関数内部に保存されることなく、関数からアクセス可能です。
どちらの場合でも、これらの資格情報を使ってassume roleを呼び出し、別のロールを仮定することができますが、ほとんどの環境ではその必要はないはずです。
<ブロッククオート例)EC2ユーザーがassume-role APIコールを実行し、IAMプロファイルが設定されたEC2インスタンス内のAWSリソースにアクセスするアプリケーションを実行するよう指定した場合。
AWSはEC2を意識していない ユーザー . インスタンスのロールは、インスタンス上で実行されているすべてのものからアクセス可能です。
EC2 IAMプロファイルのすべてのIAMロール
インスタンスプロファイルは1つのロールを含むことができます .
assume-roleの呼び出しで要求されたIAMロールとポリシー
正確に1つのロールを引き受けることを要求しています。 ポリシーを要求する必要はありません -- ポリシーを指定するのは、一時的なクレデンシャルに 少ない の権限は、ロールの資格情報によって許可されるよりも低い。 これは、ブラウザやアプリのコードなど、信頼されていない場所で実行されているコードが、クレデンシャルでリクエストに署名できる必要がある場合に行うことかもしれません。
<ブロッククオートAWSは、原則がリソース上でアクションを行うことを許可するポリシー(アクション、リソース)を持っているロールを、ロールから見つけます。
いいえ、上記の通り、assume-roleを呼び出す際に特定のロールを要求します。
AWSは、特定された役割に原則の役割を切り替えます。
いいえ。 あなた は、提供された一時的な認証情報を使用して、切り替えを行います。
関連
-
[解決済み】S3 Bucket アクションがどのリソースにも適用されない
-
[解決済み] CloudFormation Stack Errors with REST API Doesn't Contain Any Methods
-
[解決済み] SNS/SMSのログはどこにありますか?クラウドウォッチ空
-
[解決済み] RDS は、以下の組み合わせでの DB インスタンスの作成をサポートしていません。
-
[解決済み] 新しいIAM管理者ユーザーに "この操作を実行する権限がありません "と表示される
-
[解決済み] ネットワークインターフェイスが無効なAWS EC2インスタンスに接続しようとする
-
[解決済み] AWSのロールを "アサイン "するとはどういうことですか?
-
[解決済み] AWS - Disconnected : サポートされている認証方法がありません (サーバーは :publickey を送信)
-
[解決済み] aws-cliでdynamodbのitemを返却する方法
-
[解決済み] パスワードなしでec2インスタンスにscp(セキュアコピー)する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DynamoDBテーブルの複数の項目を一度に更新する方法
-
[解決済み] AMI保管コスト
-
[解決済み] エラー: networkMode 'awsvpc' が指定された場合、ネットワーク構成を提供する必要があります。
-
[解決済み] アクセスポイントを経由してAmazon S3へのロールを認可する
-
[解決済み] DynamoDB Upsert - Update or Create?
-
[解決済み] SQSとRabbitMQの比較
-
[解決済み] amazon dynamodbのパーティションキーとソートキーの違いは何ですか?
-
[解決済み] AWSプライベートリンクとVPCエンドポイント
-
[解決済み】LightsailとEC2の違いは何ですか?[クローズド]
-
[解決済み】Amazon EC2とAWS Elastic Beanstalkの違いについて