AWS CLI を使用して IAM ロールを引き受ける方法は?

Aws Cli Wo Shi Yongshite Iam Roruwo Yinki Shoukeru Fang Faha



AWS はさまざまなサービスと多大なメリットを提供しているため、IT 専門家からセキュリティ上の懸念が提起されたのは当然のことです。これらのセキュリティ上の懸念に対処するために、IAM サービスが AWS によって導入されました。 AWS IAM は、ユーザーが AWS リソースを保護できるようにするコア Web サービスの 1 つです。 IAM は、さまざまなユーザーのアクセス許可を定義することにより、AWS サービスの集中アクセス管理の機能を提供します。

概要

この記事では、次のことについて学びます。







AWS IAM ロールとは何ですか?
AWS の役割の引き受けとは何ですか?
AWS CLI を使用して IAM ロールを引き受ける方法は?



最終的な考え



IAM のロールとアクセス許可を使用して、AWS サービスへの認証および許可されたアクセスを決定できます。これらのロールと権限は、AWS アカウントの root ユーザー (所有者) のみが割り当てることができます。





AWS IAM ロールとは何ですか?

IAM ロールは、AWS アカウント内の root ユーザーによって作成される ID です。この ID には、AWS リソースへの IAM ロールのアクセス範囲を定義する特定のアクセス許可が割り当てられます。これらのアクセス許可は、AWS で管理することも、root ユーザーによってカスタム定義することもできます。

IAM ロールは、IAM ユーザーとよく似ていますが、IAM ロールは特定の権限を持つ ID であり、ユーザーはこれらのロールを引き受けて特定の機能を実行できる点が異なります。ロールに付与されるアクセス許可は、この ID (IAM ロール) で実行できるアクションを定義します。



AWS の役割の引き受けとは何ですか?

ロールの引き受けは、サービス内のリソースへのアクセスまたは操作の権限がユーザーに割り当てられていない場合でも、ユーザーが AWS サービスを操作できるようにする AWS IAM サービスの機能の 1 つです。これらの権限は、役割が引き受けられるときにユーザーに間接的に割り当てられます。 AWS リソースへのアクセスには、セッションベースのログインとともに一時的な認証情報のセットが使用されます。

これらの一時的な認証情報には、シークレット アクセス キー、アクセス キー ID、セキュリティ トークンが含まれます。 AWS ルートユーザーによって作成された IAM ロールは、AWS アカウント内の他のユーザー、またはロールのポリシーに ARN が記載されているユーザーによって引き受けられます。ユーザーまたはリソースの ARN を含むポリシーは、 信頼ポリシー

許可ポリシーと信頼ポリシーの違いは何ですか?

さまざまな方法で役割引き受け機能を実装する前に、ユーザーは 2 つの中心的な概念を理解しておく必要があります。 IAM サービスには 2 種類のポリシーがあります。

    • 信頼ポリシー: 信頼ポリシーは、誰が特定の IAM ロールを引き受けることができるかを決定します。ユーザーが引き受けるロールについては、ユーザーの ARN が IAM ロールの信頼ポリシーに記載されています。この信頼ポリシーは、ユーザーまたはリソースがこのロールを引き受ける信頼できるエンティティであるかどうかを決定します。
    • 許可ポリシー: このポリシーは、ユーザーが実行できること、またはそのロールで実行できるアクションを決定します。

AWS CLI を使用して IAM ロールを引き受ける方法は?

役割を引き受けることは、認証され、特定のアクションを実行する権限を与えられた別のユーザーになりすますことと似ています。 AWS は ID を前提としながら、セキュリティが損なわれないことを保証します。

次の例を考慮して、Assume-role 機能の動作を理解しましょう。

例えば、 S3 バケットに対する権限が割り当てられていないユーザーが AWS アカウント内に存在します。の 「読み取り専用アクセス」 は、IAM ロールにアタッチされるアクセス許可ポリシーと呼ばれます。ユーザーがこのロールを引き受けるには、ユーザーの ARN が IAM ロールのポリシーに記載されています。このポリシーは現在、次のように呼ばれています。 「信頼ポリシー」 権限ポリシーとは異なります。 Trust ポリシーは、ユーザーが承認されたエンティティであるかどうかを AWS が判断するのに役立つため、非常に重要です。

ARN は、IAM ロールの許可ポリシーではなく、信頼ポリシーに記載されていることに注意してください。役割を引き受けることにより、ユーザーは、その役割の権限ポリシーによって定義されたいくつかの管理アクションを実行できます。これらのアクションには、リソースの追加、削除、変更、復元などが含まれます。

以下は、AWS CLI でロールを引き受ける 3 つの方法です。

方法 1: STS (セキュリティ トークン サービス) を使用する

ユーザーは、一時的な認証情報のセットを返す STS セクション (セキュア トークン サービス) のコマンドを実行することによって、ロールを引き受けることができます。一時的な認証情報は、リソースへの API 呼び出しを行うためのセッションベースのログインを確立するために使用されます。ただし、 2つの例外 STS の使用中、つまり、 フェデレーショントークンの取得 そして セッショントークンを取得します。

セッション トークンとフェデレーション トークンの機密情報を保護するために、ユーザーはこれらのトークンへのアクセスが制限されています。そのため、いかなる状況でもセキュリティが損なわれることはありません。役割を引き受けることにより、ユーザーは割り当てられた権限を昇格できます。

この記事のこのセクションでは、STS コマンドを使用して一時的な認証情報のセットを要求します。以下に手順を示します。

ステップ 1: ユーザーとユーザー ポリシーを作成する

まず、 IAMユーザーを作成する 権限がありません。この目的のために、 CMD Windows の [スタート] メニューから:


だけ ルートユーザー できる 作成する IAMユーザー AWS アカウント内で。したがって、次のコマンドを使用して AWS ルート アカウントにサインインします。

AWSの設定


コマンドの出力に示すように、このデモの認証情報は CLI 内ですでに構成されています。


もっと詳しく知る:

IAMユーザーを作成する 、次のコマンドを CLI に提供します。

aws iam 作成ユーザー --ユーザー名 デモユーザー


交換してください デモユーザー あなたと一緒に IAM ユーザー名。

を助けて 「アーン」 コマンドの出力にそのまま表示されます 必須 いつ 作成 信頼ポリシー :


続きを読む:

次のステップは、 許可する ユーザー (デモユーザー) ) 役割を引き受ける 。この目的のために、 JSONファイル どれかを使用して テキストエディタ あなたが好む。このデモでは、 メモ帳 以下のコマンドで指定されているとおりです。

Windowsの場合

メモ帳のユーザーポリシー.json


交換してください ユーザーポリシー IAM ポリシー名に置き換えます。

Linux OSの場合

なぜなら ユーザーポリシー.json


現時点では、このデモには Windows オペレーティング システムを使用しています。


これにより、メモ帳が開きます。次のポリシーをメモ帳に貼り付けて、 を押します。 「CTRL+S」 キーボードから変更を保存します。

{
'バージョン' : 「2012-10-17」
'声明' : [
{
'効果' : '許可する'
'アクション' : [
'ec2:説明*'
「iam:ListRoles」
「sts:役割を引き受ける」
]
'リソース' : 「*」
}
]
}


以下に、指定されたポリシーの簡単な説明を示します。

    • ec2:説明: この権限は、ユーザーがすべての AMI、スナップショット、または EC2 インスタンスを表示またはリストできることを指定します。
    • iam:リスト役割: この権限は、ユーザーが IAM サービス内のすべてのロールを一覧表示できることを指定します。
    • sts:役割を引き受ける: この権限は、ユーザーが IAM サービス内で定義されたロールを引き受けることができることを表します。

ここでは、ポリシーがメモ帳内で編集され、保存されています。


各AWS リソース が割り当てられています アクセスリソース名 (ARN) どれの 一意に識別する リソース。ポリシーの ARN を確認するには、以下のコマンドを使用します。

aws iam 作成ポリシー --ポリシー名 ユーザーポリシー --ポリシー文書 ファイル: // ユーザーポリシー.json


上記のコマンドでは次のようになります。

    • –ポリシー名: 値を置き換えます 「ユーザーポリシー」 好みのポリシー名を付けてください。
    • –ポリシー文書: このフィールドの「」を置き換えます。 ユーザーポリシー.json” ユーザーのポリシーを含む json ファイルの名前を置き換えます。

上記のコマンドの出力は次のとおりです。を助けて 「アーン」 このポリシーをユーザーにアタッチするときに必要になるため、ポリシーの出力に記載されています。

ステップ 2: ユーザーにポリシーをアタッチする

このポリシーにより、ユーザーは EC2インスタンス 友達 ユーザーが別の権限を持つロールを引き受けると、ユーザーは権限ポリシーで許可されている特定のアクションのみを実行できます。

このセクションで前に作成したユーザーにポリシーをアタッチするには、次のコマンドを使用します。

aws iam アタッチユーザーポリシー --ユーザー名 デモユーザー --ポリシー-arn 「arn:aws:iam::123456789:ポリシー/ユーザーポリシー」


上記のコマンドでは次のようになります。

    • –ユーザー名: 交換してください 「デモユーザー」 の中に –ユーザー名 フィールドに IAM ユーザー名を入力します。
    • –ポリシー-arn: 同様に、 –ポリシーアーン、 を指定します 「アーン」 前のコマンド、つまり –create-policy の出力から。

必要な変更を加えた後にコマンドを実行すると、ポリシーがユーザーに正常にアタッチされます。


ポリシーがユーザーにアタッチされているかどうかを確認するには、CLI に次のコマンドを入力します。

aws iam list-attached-user-policies --ユーザー名 デモユーザー


交換してください デモユーザー IAM で ユーザー名 ユーザーの作成時に指定されます。

次のコマンドの出力は、ポリシーがユーザーに正常にアタッチされたことを確認します。

ステップ 3: 信頼ポリシーと IAM ロールを作成する

リソースまたはユーザーの ARN がポリシーで指定されると、信頼関係が確立されます。この機能により、ユーザーまたはエンティティは、ポリシーによって信頼されているとみなされるため、特定のアクションを実行できるようになります。

このステップでは、IAM ロールとユーザーの間の信頼関係を確立するポリシーを作成します。この信頼ポリシーは IAM ロールにアタッチされます。その後、IAM ロールがユーザーに引き継がれ、ユーザーがポリシーで指定されたアクションを実行することが間接的に許可されます。

信頼ポリシーを作成するには、次のコマンドを使用します。

Windowsの場合

メモ帳 trust-role-policy.json


交換してください trust-role-policy.json ポリシーの好みの名前を付けます。

Linux OSの場合

なぜなら trust-role-policy.json


交換してください trust-role-policy.json ポリシーの好みの名前を付けます。

信頼ポリシーは次のとおりです。 JSON形式 によって指定されるように、 .json 次のコマンドの拡張子:


これにより、メモ帳が開きます。 ペースト 次の ポリシー メモ帳内で、 「CTRL+S」 キーボードから ボタンを押して変更を保存します。ユーザーの ARN は、IAM コンソールのユーザーのダッシュボードからコピーすることもできます。このためには、IAM ダッシュボードにアクセスし、ユーザーの名前をクリックします。表示された設定から、[概要] セクションに表示されるユーザーの ARN をコピーします。

{
'バージョン' : 「2012-10-17」
'声明' : {
'効果' : '許可する'
'選考科目' : {
「AWS」 : 「arn:aws:iam::123456789012:ユーザー/例ユーザー」
}
'アクション' : 「sts:役割を引き受ける」
}
}


上記のポリシーでは次のようになります。

    • AWS: 交換してください AWSフィールド値 「arn:aws:iam::123456789012:user/example-user」と ユーザーのARN これは –create-user コマンドの出力に表示されました。

ユーザーは、ユーザーの ARN を指定することで、他のユーザーが IAM ロールを引き受けることを制限できます。 「AWS」 分野:


続きを読む:

次に、IAM ロールを作成し、それに信頼ポリシーをアタッチします。 IAM ロールを作成するには、以下のコマンドを使用します。

aws iam 作成ロール --ロール名 ユーザーロール --assume-role-policy-document ファイル: // trust-role-policy.json


上記のフィールドの説明は次のとおりです。

    • –役割名: このフィールドは、この IAM ロールに割り当てられる名前を入力するために使用されます。 「user-role」の値を、選択した IAM ロール名に置き換えます。
    • –想定役割ポリシー文書: このフィールドには、コマンドで指定されたパスを指定します。 trust-role-policy.json を、前のセクションで指定したポリシー名に置き換えます。

このコマンドを実行すると、ARN、パス、ID などのいくつかの情報が出力に返されます。


続きを読む:

この役割を引き受けると、ユーザーは次のことを実行できるようになります。 「読み取り専用アクセス」 S3 バケットを使用したアクション。コマンドは次のように指定します。

aws iam アタッチロールポリシー --ロール名 ユーザーロール --ポリシー-arn 「arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess」


上記のコマンドでは次のようになります。

    • –役割名: 交換する ' ユーザーロール” –role-name フィールドに IAM ロールの名前 このチュートリアルの前半で指定したものです。
    • –ポリシー-arn: –policy-arn で指定された arn は、S3 バケットの ReadOnlyAccess 権限を参照します。

この画像では、ロールには S3 バケットの ReadOnlyAccess 権限が割り当てられています。


権限がロールに割り当てられているかどうかを確認するには、次のコマンドを使用します。

aws iam リストアタッチされたロールポリシー --ロール名 ユーザーロール


交換してください 「ユーザーロール」 IAM ロール名に置き換えます。

「AmazonS3読み取り専用アクセス」 IAM ロールに権限が付与されています。コマンドの出力は次のようになります。

ステップ 4: アクセスキーを作成する

このセクションでは、ユーザーのアクセス キーを作成します。アクセス キーは、AWS アカウントにログインするために使用されます。

aws iam 作成アクセスキー --ユーザー名 デモユーザー


交換してください デモユーザー ユーザーの作成時に指定した IAM ユーザー名に置き換えます。

ここで、コマンドは、作成日、ステータスなどの追加の詳細を含む一連のアクセス キー ペア(AccessKeyId とシークレット アクセス キー)を返しました。 保存 AccessKeyId と SecretAccessKey は、チュートリアルの後半で必要になります。


続きを読む:

ステップ 5: アクセスキーを構成し、IAM ユーザーを確認する

アクセス キーを構成するには、次のコマンドを CMD に提供し、アクセス キー ID とシークレット アクセス キーを入力します。

AWSの設定


このセクションのステップ 4 で作成したアクセス キー ID とシークレット アクセス キーを CLI に提供します。この地域では、デフォルト設定をそのまま使用しています。ユーザーは、デフォルトの出力形式として任意の出力形式を構成できます。このデモでは、 JSON フォーマット:


IAM ユーザーが構成されているかどうかを確認するには、CLI に次のコマンドを入力します。

aws sts get-caller-identity


コマンドの出力は、 「デモユーザー」 は正常に構成され、現在 AWS アカウントにログインしています。


IAM ユーザーが EC2 インスタンスを一覧表示できるが、現在 S3 バケットにアクセスできないことを確認するには、次のコマンドを使用します。

aws ec2 記述インスタンス --クエリ 「予約[*].インスタンス[*].[VpcId、InstanceId、ImageId、InstanceType]」


コマンドの出力は次のようになります。


次に、次のコマンドを入力して、ユーザーが S3 バケットにアクセスできるかどうかを確認します。

AWS s3 ls


これにより、 'アクセスが拒否されました' ユーザーが S3 バケットへのアクセスを許可されていないことを示すエラー:

ステップ 6: IAM ロールを引き受ける

ユーザーには、AWS アカウント内の IAM ロールをリストする権限があります。そのため、Roleを引き受けるには、まず以下のコマンドを実行してARNなどの必要な情報を取得します。

aws iam リスト-ロール --クエリ 'ロール[?RoleName == 'ユーザーロール'].[RoleName, Arn]'


「RoleName」フィールドの「user-role」を IAM ロール名に置き換えます。

ARN は、上記のコマンドの出力に示されています。


IAM ロールの ARN を取得したので、次のコマンドを使用してそのロールを引き受けることができます。

aws sts の役割を引き受ける --役割アーン 「arn:aws:iam::123456789012:ロール/例-ロール」 --ロールセッション名 AWSCLI セッション


上記のコマンドでは次のようになります。

    • –役割アーン: –role-arn の前述の値を IAM ロールの ARN に置き換えます。
    • –ロールセッション名: ユーザーは、このフィールドに任意の名前を指定できます。

上記のコマンドを実行すると、一時的な認証情報のセットが返されます。これらの一時的な認証情報は、必要な権限 (ReadOnlyAccess) を持つ IAM ロールを引き受けるために使用されます。 AccessKeyId と SecretAccessKey は、これらの一時的な認証情報を構成するときに使用されます。


コマンドの出力の簡単な説明は次のとおりです。

    • セッショントークン: セッション トークンは、セッションベースのログインを作成するために使用されます。資格情報の構成時に必要となるため、このフィールドの値を保存します。
    • 有効期限: セッション トークンには有効期限があります。指定された時間が経過するとトークンは役に立たなくなり、ユーザーはその役割を引き受けることができなくなります。

ステップ 7: 環境変数を構成する

一時的な認証情報を構成するには、Windows の「set」コマンドを使用し、アクセス キー ID、シークレット アクセス キー、セッション トークンなどの値を指定します。

Windowsの場合

セット AWS_ACCESS_KEY_ID =RoleAccessKeyID


RoleAccessKeyID を、手順 6 のコマンドによって返されたアクセス キー ID に置き換えます。

Linux OSの場合

輸出 AWS_ACCESS_KEY_ID =RoleAccessKeyID


RoleAccessKeyID を、手順 6 のコマンドによって返されたアクセス キー ID に置き換えます。

アクセスキーが設定されました:


次に、Windows の「set」コマンドを使用してシークレット アクセス キーを構成します。

Windowsの場合

セット AWS_SECRET_ACCESS_KEY =RoleSecretKey


RoleSecretKey を、手順 6 のコマンドによって返されたシークレット アクセス キーの値に置き換えます。

Linux OSの場合

輸出 AWS_SECRET_ACCESS_KEY =RoleSecretKey


AWS_SECRET_ACCESS_KEY を、ステップ 6 のコマンドによって返されたシークレット アクセス キーに置き換えます。

シークレット アクセス キーは正常に構成されました。


最後に、セッション ベースのログインを確立するためにセッション トークンを構成します。この目的のために、以下のコマンドを使用します。

Windowsの場合

セット AWS_SESSION_TOKEN =RoleSessionToken


RoleSessionToken を、手順 6 のコマンドによって返されたセッション トークンの値に置き換えます。

Linux OSの場合

輸出 AWS_SESSION_TOKEN =RoleSessionToken


RoleSessionToken を、手順 6 のコマンドによって返されたセッション トークンの値に置き換えます。

セッション トークンの値は正常に構成されました。


CMD からセッション トークンの値をコピーするには、次を押します。 「CTRL+SHIFT+C」

環境変数を構成した後、次のコマンドを使用して、そのロールがユーザーによって引き受けられているかどうかを確認します。

aws sts get-caller-identity


コマンドの出力により、IAM ロールが 正常に想定されました ARN リターンとしてユーザーによって 「arn:aws:sts::123456789012:想定ロール/ユーザーロール/AWSCLI-セッション」 の代わりに 「arn:aws:iam::123456789012:ユーザー/デモユーザー」:


ロールには ReadOnlyAccess 権限が含まれているため、ユーザーはバケットを登録できるようになります。この目的のために、次のコマンドを CLI に提供します。

AWS s3 ls


コマンドの出力では、現在 AWS アカウント内に構成されているすべての S3 バケットが正常に登録されています。


ただし、引き受けられたロールには EC2 サービスに対する権限がないため、ユーザーは EC2 サービスにアクセスできません。これを確認するには、次のコマンドを使用します。

aws ec2 記述インスタンス --クエリ 「予約[*].インスタンス[*].[VpcId、InstanceId、ImageId、InstanceType]」


以前は、ユーザーは EC2 サービス情報にアクセスできました。ただし、上記のコマンドを実行すると、 'アクセスが拒否されました' エラーが発生しました。ユーザーは IAM ロールを正常に引き受けました。


このセクションからはここまでです。

おまけのヒント: 環境変数の設定を解除する

IAM ユーザー (デモユーザー) に戻るには、環境変数を空の文字列に設定することで環境変数を削除できます。与えられたコマンドは次のとおりです。

Windowsの場合

セット AWS_ACCESS_KEY_ID =
セット AWS_SECRET_ACCESS_KEY =
セット AWS_SESSION_TOKEN =


Linuxの場合

以下のコマンドを使用します。

設定を解除する AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


上記のコマンドは環境変数の設定を解除します。


上記のコマンドを実行すると、コンソールから次のメッセージが返されるはずです。 「デモユーザー」 想定されたロール、つまり user-role ではなく、現在ログインしているユーザーとして。この目的のために、次のコマンドを使用します。

aws sts get-caller-identity


コマンドの出力は、現在ログインしているユーザーがdemo-userであることを示しています。


同様に、root ユーザーとしてログインするには、次の手順に従います。 「C:\Users%USERPROFILE%.aws」 パスを入力し、認証情報ファイルをクリックします。


認証情報ファイル内で、アクセス キーとシークレット アクセス キーの値を root ユーザーのアクセス キーとシークレット アクセス キーに置き換えます。


CLI に次のコマンドを入力して、資格情報が正しく構成されているかどうかを確認します。

AWSの設定


ここで、以下の画像では、root ユーザーのアクセス キーとシークレット アクセス キーが正常に構成されていることがわかります。


チュートリアルのこのセクションの内容はこれですべてです。

方法 2: –profile パラメーターを使用する

役割を引き受ける別の方法は、CLI の「-profile」フィールドを使用することです。記事のこのセクションでは、-profile を介して AWS でのロールを引き受ける実際の実装について説明します。以下にその手順を示します。

ステップ 1: IAM ユーザーを作成する

IAM ユーザーを作成するには、次のコマンドを使用して CLI 経由で root ユーザー アカウントにログインします。

AWSの設定


コマンドの出力に示すように、このデモの認証情報は CLI 内ですでに構成されています。


もっと詳しく知る:

IAM ユーザーを作成するには、CLI に次のコマンドを入力します。

aws iam 作成ユーザー --ユーザー名 プロファイルユーザー


ユーザーが正常に作成されました。以下の図に示されているように、ユーザーの ARN を保存します。この IAM ユーザーの ARN は、このチュートリアルの後半で使用します。現在、この IAM ユーザーに関連付けられている権限はありません。


続きを読む:

ステップ 2: アクセスキーを作成する

AWS では、各ユーザーにログイン用のアクセス キーのペアが割り当てられます。このユーザーのアクセス キーを作成するには、次のコマンドを入力します。

aws iam 作成アクセスキー --ユーザー名 プロファイルユーザー


このコマンドは、アクセス キーのセットを返します。 保存 アクセスキーID そして シークレットアクセスキー AWS アカウントにログインするときに必要となるため、次のようになります。


ここで、これらの AccessKeyId と SecretAccessKey を使用して AWS CLI にログインし、任意のリソースにアクセスするとします。 S3 バケット、 'アクセスが拒否されました' エラーが発生します。これは、現在 IAM ユーザーに関連付けられた権限がないためです。 AWS CLI にログインするには、次のコマンドを使用し、前に作成したアクセス キー ID とシークレット アクセス キーを指定します。

AWSの設定 - プロフィール プロファイルユーザー


交換してください 「プロファイルユーザー」 ユーザーの作成時に指定した IAM ユーザー名を使用します。

ここでは、IAM ユーザーとして AWS CLI に正常にログインしました。


このユーザーが S3 バケットに対する読み取り専用権限を持っているかどうかを確認するには、CLI に次のコマンドを入力します。

AWS s3 ls - プロフィール プロファイルユーザー


profile-user を、ユーザーの作成時に指定した IAM ユーザー名に置き換えます。

このユーザーには root ユーザーによって権限が割り当てられていないため、「 アクセスが拒否されました ' エラー:

ステップ 3: 信頼ポリシーと IAM ロールを作成する

信頼ポリシーは、ユーザーまたは AWS リソースが、ロールを引き受けてアクセス許可を取得するための信頼できるエンティティであるかどうかを決定します。この信頼関係は、アクセス許可ポリシー内で IAM ユーザーまたは AWS リソースの ARN を指定することによって作成されます。

IAM 内に信頼ポリシーを作成するには、CLI に次のコマンドを入力します。

Windowsの場合

メモ帳 trust-policy.json


交換してください trust-policy.json ポリシーの好みの名前を付けます。

Linux OSの場合

なぜなら trust-role-policy.json


交換してください trust-policy.json ポリシーの好みの名前を付けます。

ユーザーは好みのテキスト エディタを使用できます。このデモでは、メモ帳を使用します。


これにより、信頼ポリシーを作成するためのメモ帳が開きます。次のポリシーをメモ帳に貼り付けて、 を押します。 「CTRL+S」 キーボードから変更を適用して保存します。

{
'バージョン' : 「2012-10-17」
'声明' : {
'効果' : '許可する'
'選考科目' : {
「AWS」 : 「arn:aws:iam::012345678910:ユーザー/プロファイルユーザー」
}
'アクション' : 「sts:役割を引き受ける」
}
}


上記のポリシーでは次のようになります。 AWS: 値「arn:aws:iam::012345678910:user/policy-user」を、このセクションで前に作成した IAM ユーザーの ARN に置き換えます。

ポリシーはメモ帳内で編集されました。


次に、IAM ロールを作成し、上記の信頼ポリシーをそれにアタッチします。次のコマンドを使用して IAM ロールを作成します。

aws iam 作成ロール --ロール名 自分の役割 --assume-role-policy-document ファイル: // trust-policy.json


上記のコマンドでは次のようになります。

    • –役割名: 交換してください '自分の役割' 選択した IAM ロール名に置き換えます。
    • –想定役割ポリシー文書: このフィールドでは、用語を置き換えます 「trust-policy.json」 IAM 信頼ポリシーの名前で置き換えます

IAM ロールが正常に作成されました。 IAM ロールを保存します。次の図で強調表示されているように、IAM ロールの ARN を保存します。この ARN は、ユーザーのプロファイルを構成するときに使用されます。


IAM に付加された信頼ポリシーは、ユーザーがそのロールを引き受けることに対して信頼されているかどうかを識別します。アクセス許可ポリシーは、IAM ロールが AWS サービスで特定のアクションを実行するために必要なアクセス許可を持っているかどうかを決定します。

信頼ポリシーが IAM ロールにアタッチされたため、次のステップでは、アクセス許可ポリシーを IAM ロールにアタッチします。以下のコマンドは、IAM ロールにアクセス許可ポリシーをアタッチするために使用されます。

aws iam アタッチロールポリシー --ロール名 自分の役割 --ポリシー-arn 「arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess」


ここでは、CLI を介してアクセス許可ポリシーが IAM ロールにアタッチされています。

ステップ 4: プロファイルの構成

ユーザーがこのロールを引き受けるには、まず AWS の認証情報内でこのプロファイルを構成します。これらの一時的な認証情報を添付するには、次のコマンドを入力します。

メモ帳〜 / .aws / 構成


ボーナスヒント: メモ帳の「パスが指定されていません」を解決する

設定ファイルには、AWS CLI の [デフォルト] 設定が含まれます。ただし、メモ帳に「指定されたパスが見つかりません」と表示された場合は、次のコマンドを入力してください。

メモ帳.aws / 構成


Linux ユーザーは、 'なぜなら' プロファイルを設定するためのエディター。ユーザーは好みのエディタを使用して、ローカル マシンで AWS の構成ファイルを開くことができます。


メモ帳で開いた構成ファイル内で、次の変更を編集します。

[ プロファイル プロファイル ユーザー ]
役割_arn = arn:aws:iam::012345678910:ロール / 自分の役割
ソースプロファイル =プロファイルユーザー


上記のスニペットでは次のようになります。

    • 役割_arn: 値「arn:aws:iam::012345678910:role/myrole」を IAM ロールの ARN に置き換えます。
    • ソース_プロファイル: このフィールドには、このメソッドのステップ 1 で作成した IAM ユーザーの名前を入力します。

必要な変更を加えた後、 を押します 「CTRL+S」 キーボードから変更を適用して保存します。


ここで、ユーザーが S3 バケットを一覧表示できるかどうかを確認するには、CLI に次のコマンドを入力します。

AWS s3 ls - プロフィール プロファイルユーザー


上記のコマンドでは次のようになります。 –プロファイルユーザー: このフィールドで、値「profile-use」を構成ファイルで指定した名前に置き換えます。

設定ファイル内で「profile-user」を指定したため、CLI のコマンドでも同じ名前を使用します。以前は、権限が割り当てられていなかったため、ユーザーは AWS の S3 サービスにアクセスできませんでした。 IAM ロールには S3 バケットの「ReadOnlyAccess」権限があるため、このロールを引き受けることで、ユーザーは S3 ダッシュボードからバケットを一覧表示できます。


このチュートリアルの方法はこれですべてです。

方法 3: MFA (多要素認証) を使用する

多要素認証を有効にすることにより、ユーザーはユーザーのアカウントに追加のセキュリティ層を構成できます。 MFA を有効にすると、権限のないユーザーは、パスワードとユーザー名を入力したとしても、ユーザーのアカウントにアクセスできなくなります。 MFA は、アカウントへのログインに必要な 6 桁のコードです。多要素認証の詳細については、次の記事を参照してください。

CLI 経由で MFA の役割を引き受ける手順は次のとおりです。

ステップ 1: IAM ユーザーを作成し、MFA を有効にする

このステップでは、ユーザーは CLI を使用してユーザーを作成するか、AWS マネジメントコンソールにアクセスできます。次のコマンドを使用して、root ユーザー アカウントにログインします。

AWSの設定


コマンドの出力は次のようになります。


ユーザーを作成するには、CLI に次のコマンドを入力します。

aws iam 作成ユーザー --ユーザー名 MFA ユーザー


上記のコマンドでは次のようになります。 –ユーザー名: 交換してください 「MFA ユーザー」 選択した IAM ユーザー名に置き換えます。

ユーザーが正常に作成されました。このセクションの後半で必要になるため、ユーザーの ARN を保存します。現在、このユーザーには権限が割り当てられていません。


MFA を有効にするには、AWS マネジメント コンソールにアクセスし、IAM サービスを検索します。表示された結果からそれをクリックします。


IAM サービスの左側のナビゲーション ペインで [ユーザー] オプションをクリックします。ユーザー ダッシュボードからユーザー名をクリックして MFA を構成します。


次のインターフェイスで、 「セキュリティ認証情報」 オプション:


下にスクロールして、 多要素認証 セクションをクリックして、 「MFAデバイスの割り当て」 ボタン:


を提供する 意味のある名前 の中に 装置名 表示されたインターフェースのテキストフィールド:


[MFA デバイス] セクションまで下にスクロールします。ユーザーには、セキュリティ キーまたはハードウェア TOTP トークンを介して QR コードをスキャンするなど、MFA を有効にするためのさまざまなオプションが表示されます。このデモでは、 「認証アプリ」 オプション:


をタップします。 '次' インターフェイスの下部にあるボタンをクリックして次に進みます。


クリック 「QRコードを表示」 以下の画像に示すように:


を起動します。 携帯電話またはラップトップ上のアプリケーションを使用して QR コードをスキャンします。をタップします。 「+」 Symantec VIP インターフェイスからのオプション:


Play ストアでは、Symantec VIP は VIP Access と呼ばれます。

Symantec VIP の次のインターフェイスで、 QRコードをスキャンします インターフェイスの下部にあるボタン:


AWS MFA から QR コードをスキャンします 認証アプリのインターフェース 表示されます。このコードは、IAM ユーザーのコンソールにログインするために必要な一連のコードを生成します。


Symantec VIP アプリは、 6桁のOTP QRコードをスキャンした後。これらのコードは毎回送信され続けます。 30秒 。以下のスクリーンショットは、生成される 2 つのコードを示しています。


コードを提供してください MFAコード1 そして MFAコード2 MFA の認証アプリ インターフェイスのテキスト フィールド。クリック 「MFAを追加」 その後、ボタンを押して機能を有効にします。


IAM ユーザーに対して MFA が正常に有効になりました。これは次の方法で確認できます。 「多要素認証(MFA)」 のセクション 「セキュリティ認証情報」 のタブ IAMユーザー 。このセクションから、役割を引き受ける際に必要になるため、Identifier の値を保存します。

ステップ 2: ユーザーにポリシーをアタッチする

ユーザーがロールを引き受けるには、IAM ロールをリストして、引き受けるロールとそのロールを引き受ける権限を決定できる必要があります。ユーザーに必要な権限を付与するには、次の手順に従います。 このチュートリアルの方法 1 の

ステップ 3: 信頼ポリシーと IAM ロールを作成する

次のステップでは、ユーザーが信頼できるエンティティであるかどうかを判断する信頼ポリシーを作成します。この信頼ポリシーは IAM ロールにアタッチされます。信頼ポリシーと IAM ロールを作成するには、コマンド プロンプトに移動し、次の手順を実行します。 この記事の方法 1 の。

ステップ 4: アクセスキーを作成する

ユーザーが認可および認証されるために、AWS プラットフォーム全体でグローバルに一意のアクセス キーのペアが生成されます。このキー ペアは、AWS アカウントへのログイン時に使用されます。 IAM ユーザーのアクセス キーを作成するには、次の手順に従います。 この記事の方法 1 の説明です。

ステップ 5: 資格情報を構成する

AWS ユーザーは、認証情報が正しく構成されている場合にのみ AWS リソースとサービスにアクセスできます。メソッドのこのセクションでは、アクセス キーとシークレット アクセス キーをコマンド ライン インターフェイスに提供することで、IAM ユーザーの資格情報を構成します。この目的のために、次に従ってください。 このチュートリアルの方法 1 の。

ステップ 6: IAM ロールを引き受ける

IAM ロールを正常にアタッチし、信頼ポリシーを実装すると、ユーザーは IAM ロールを引き受けることができます。この目的のために、次のコマンドを CLI に提供します。

aws iam 作成アクセスキー --ユーザー名 MFA ユーザー


ここでは、IAM ユーザーのキーが正常に作成されました。 AWS アカウントへのログインに必要となるため、AccessKeyId と SecretAccessKey を保存します。


次のステップは、AWS CLI 内でアクセス キーを設定することです。 CLI を設定するには、以下のコマンドを使用します。

AWSの設定


構成のために、アクセス キーとシークレット アクセス キーを CLI に提供します。


IAM ユーザーが AWS CLI にログインしているかどうかを確認するには、次のコマンドを使用します。

aws sts get-caller-identity


コマンドの出力は次のようになります。これは、ユーザーが AWS コンソールに正常にログインしたことを示しています。


ユーザーには、AWS アカウント内の IAM ロールをリストする権限があります。以下に示すコマンドは、IAM ロールを一覧表示するために使用されます。

aws iam リスト-ロール --クエリ 'ロール[?RoleName == 'mfa-role'].[RoleName, Arn]


上記のコマンドでは次のようになります。 役割名: このフィールド内の値「mfa-role」を IAM ロールの名前に置き換えます。

コマンドの出力は次のようになります。


MFA で IAM ロールを引き受けるには、シリアル番号やトークン コードなどの追加パラメーターを指定して assign role コマンドを使用します。 CLI に次のコマンドを入力します。

aws sts の役割を引き受ける --役割アーン 「arn:aws:iam::123456789012:role/m-role」 --ロールセッション名 AWSCLI セッション - シリアルナンバー 「arn:aws:iam::012345678910:mfa/admindevice」 - トークンコード 「123456」


上記のコマンドでは次のようになります。

    • –役割アーン: このフィールドの値を IAM ロールの ARN に置き換えます。
    • –ロールセッション名: このフィールドでは、ユーザーは任意のセッション名を指定できます。
    • -シリアルナンバー: このフィールドの値を、前に保存した MFA インターフェイスの識別子の値に置き換えます。
    • -トークンコード: この値は、Symantec VIP インターフェイスに表示される現在のコードに置き換えられます。

Symantec VIP に表示される現在のコードは次のとおりです。同じコードがコマンドの –token-code 値で使用されます。


コマンドの出力には、セッション トークン、アクセス キー、シークレット アクセス キーなどの一時的な認証情報が含まれます。

ステップ 7: 環境変数を構成する

返されたアクセス キーとセッション トークンは、セッション ベースのログインを確立し、役割を引き受けるために使用されます。環境を構成するための詳細な実装については、次のセクションで説明します。 方法1の。

最終的な考え

CLI を使用してロールを引き受けるには、STS (セキュリティ トークン サービス)、-profile パラメーター、または MFA (多要素認証) を使用する 3 つの方法があります。ユーザーが役割を引き受けるには、最初に信頼ポリシーを確立する必要があります。この信頼ポリシーにより、ユーザーが信頼できるエンティティであるかどうかが決まります。この機能は、IT 専門家や個人のセキュリティ上の懸念に対処するために必要です。さらに、ユーザーは必要な権限を備えている場合にのみその役割を引き受けることができます。

ユーザーが AWS でのロールを引き受けると、セッションベースのログインが作成され、必要な権限を持つユーザーに期間限定のアクセスが提供されます。特定の時間が経過すると期限切れになるトークンが生成されるため、ユーザーは AWS リソースを使用して管理タスクを実行できなくなります。この記事では、AWS CLI でロールを引き受けるための 3 つの方法の実践的な実装について説明します。