AWS Identity and Access Management
ユーザーガイド

ロールの修正

IAM のロールは以下の方法で変更または修正できます。

  • ロールを引き受けるユーザーを変更するには、ロールの信頼ポリシーを変更します。サービスにリンクされたロールの信頼ポリシーは変更できません。

  • ロールで許可されているアクセス権限を変更するには、ロールのアクセス権限のポリシーを修正します。IAM のサービスにリンクされたロールのアクセス許可ポリシーは変更できません。ロールに依存するサービス内では、アクセス許可ポリシーを変更できる場合があります。サービスでこの機能がサポートされているかどうかについては、そのサービスの AWS ドキュメントを参照してください。

  • ロールの説明を変更するには、説明テキストを変更します。

  • AWS CLI または API を使用して、引き受けるロールの最大セッション期間設定を指定するには、最大セッション期間設定の値を変更します。この設定の値は 1 時間~ 12 時間です。値を指定しない場合、デフォルトの最大 1 時間が適用されます。

    注記

    AWS CLI または API からロールを引き受けると、duration-seconds CLI パラメータまたは DurationSeconds API パラメータを使用して、より長いロールセッションをリクエストできます。MaxSessionDuration 設定は、DurationSeconds パラメータを使用してリクエストできるロールセッションの最大セッション期間を決定します。DurationSeconds パラメータの値を指定しない場合、セキュリティ認証情報は 1 時間有効です。

  • ロールに付与されるアクセス許可の上限を変更するには、アクセス許可の境界を変更します。

AWS マネジメントコンソール、AWS コマンドラインツール、Tools for Windows PowerShell、または IAM API を使用して、これらの変更を行うこともできます。

ロールの修正 (コンソール)

AWS マネジメントコンソール を使用してロールを修正することができます。

ロールを引き受けるユーザーを変更するには (コンソール)

  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  2. IAM コンソールの [Navigation] ペインで [Roles] を選択します。

  3. アカウントのロールの一覧で、変更するロールの名前を選択します。

  4. [信頼関係] タブを選択してから、[信頼関係の編集] を選択します。

  5. 必要に応じて信頼ポリシーを編集します。ロールを引き受ける他のプリンシパルを追加するには、Principal 要素で指定します。以下のポリシースニペットの例では、Principal 要素の 2 つの AWS アカウントを参照する方法を示しています。

    "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] },

    ロールの信頼ポリシーにアカウントを追加しても、信頼関係は半分しか確立されていない点に注意してください。デフォルトでは、信頼されたアカウントのユーザーはロールを引き受けることができません。新しく信頼されたアカウントの管理者は、ロールを引き受けるアクセス許可をユーザーに付与する必要があります。これを行うには、ユーザーにアタッチするポリシーを作成または編集し、sts:AssumeRole アクションへのアクセスをユーザーに許可する必要があります。詳細については、次の手順または「ロールを切り替えるユーザーアクセス権限の付与」を参照してください。

    以下のポリシースニペットでは、Principal 要素で AWS の 2 つのサービスを参照する方法を示します。

    "Principal": { "Service": [ "opsworks.amazonaws.com", "ec2.amazonaws.com" ] },
  6. 信頼ポリシーの編集を完了したら、[信頼ポリシーの更新] を選択して変更を保存します。

    ポリシーの構造や構文の詳細については、「ポリシーとアクセス許可」および「IAM JSON ポリシーエレメントのリファレンス」を参照してください。

信頼された外部アカウントのユーザーにロールの使用を許可するには (コンソール)

この手順の詳細については、「ロールを切り替えるユーザーアクセス権限の付与」を参照してください。

  1. 信頼された外部 AWS アカウントにサインインします。

  2. ユーザーとグループのどちらにアクセス許可をアタッチするかを決定します。IAM コンソールのナビゲーションペインで [ユーザー] または [グループ] を選択します。

  3. アクセスを許可する対象となるユーザーまたはグループの名前を選択し、[Permissions (アクセス許可)] タブを選択します。

  4. 次のいずれかを行ってください。

    • 既存のカスタマー管理ポリシーを編集するには、ポリシーの名前を選択してから [ポリシーの編集] を選択し、[JSON] タブを選択します。AWS の管理ポリシーを編集することはできません。AWS 管理ポリシーには AWS アイコン ( ) が表示されます。AWS 管理ポリシーとカスタマー管理ポリシーの違いの詳細については、「管理ポリシーとインラインポリシー」を参照してください。

    • インラインポリシーを編集するには、ポリシーの名前の横にある矢印を選択してから、[ポリシーの編集] を選択します。

  5. ポリシーエディターで、新しい Statement 要素を追加して、次のように指定します。

    { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::ACCOUNT-ID-THAT-CONTAINS-ROLE:role/ROLE-NAME" }

    ステートメント内の ARN を、ユーザーが引き受けるロールの ARN に置き換えます。

  6. 画面のプロンプトに従って、ポリシーの編集を終了します。

ロールで許可されているアクセス権限を変更するには (コンソール)

  1. https://console.aws.amazon.com/iam/ にある IAM コンソールを開きます。

  2. IAM コンソールの [Navigation] ペインで [Roles] を選択します。

  3. 変更するロールの名前を選択し、[Permissions (アクセス許可)] タブを選択します。

  4. 次のいずれかを行ってください。

    • 既存のカスタマー管理ポリシーを編集するには、ポリシーの名前を選択してから [ポリシーの編集] を選択します。

      注記

      AWS 管理ポリシーを編集することはできません。AWS 管理ポリシーには (AWS ) アイコンが表示されます。 AWS 管理ポリシーとカスタマー管理ポリシーの違いの詳細については、「管理ポリシーとインラインポリシー」を参照してください。

    • 既存の管理ポリシーをロールにアタッチするには、[アクセス許可の追加] を選択します。

    • 既存のインラインポリシーを編集するには、ポリシーの名前の横にある矢印を選択してから、[ポリシーの編集] を選択します。

    • 新しいインラインポリシーを埋め込むには、[Add inline policy (インラインポリシーの追加)] を選択します。

ロールの説明を変更するには (コンソール)

  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  2. IAM コンソールの [Navigation] ペインで [Roles] を選択します。

  3. 変更するロールの名前を選択します。

  4. [ロールの説明] の横の右端にある [Edit (編集)] を選択します。

  5. ボックスに新しい説明を入力し、[Save] を選択します。

AWS CLI または API を使用して引き受けたロールの最大セッション期間設定を変更するには (コンソール)

  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  2. IAM コンソールの [Navigation] ペインで [Roles] を選択します。

  3. 変更するロールの名前を選択します。

  4. [最大 CLI/API セッション期間] の隣で値を選択します。または、[カスタム期間] を選択して値を入力します (秒)。

  5. [Save] を選択します。

    変更は、次にこのロールが引き受けられるまで有効になりません。このロールの既存のセッションを取り消す方法については、「IAM ロールの一時的なセキュリティ認証情報の取り消し」を参照してください。

ロールのアクセス許可の境界を設定するために使用するポリシーを変更するには

  1. AWS マネジメントコンソール にサインインし、IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. アクセス許可の境界を変更する対象のロールの名前を選択します。

  4. [Permissions] タブを選択します。必要に応じて、[Permissions boundary (アクセス許可の境界)] セクションを開き、[Change boundary (境界の変更)] を選択します。

  5. アクセス許可の境界として使用するポリシーを選択します。

  6. [Change boundary (境界の変更)] を選択します。

変更は、次にこのロールが引き受けられるまで有効になりません。

ロールの変更 (AWS CLI)

AWS Command Line Interface を使用してロールを変更できます。

ロールを引き受けるユーザーを変更するには (AWS CLI)

  1. (オプション) 変更するロールの名前が不明である場合は、次のコマンドを実行してアカウントのロールを一覧表示します。

  2. (オプション) ロールの現在の信頼ポリシーを表示するには、次のコマンドを実行します。

  3. ロールにアクセス可能な信頼されたプリンシパルを変更するには、更新された信頼ポリシーを使用してテキストファイルを作成します。ポリシーの作成には任意のテキストエディタを使用できます。

    以下の信頼ポリシーの例では、Principal 要素で 2 つの AWS アカウントを参照する方法を示します。これにより、2 つの別個の AWS アカウント内のユーザーが、このロールを引き受けることができます。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ]}, "Action": "sts:AssumeRole" } }

    ロールの信頼ポリシーにアカウントを追加しても、信頼関係は半分しか確立されていない点に注意してください。デフォルトでは、信頼されたアカウントのユーザーはロールを引き受けることができません。新しく信頼されたアカウントの管理者は、ロールを引き受けるアクセス許可をユーザーに付与する必要があります。これを行うには、ユーザーにアタッチするポリシーを作成または編集し、sts:AssumeRole アクションへのアクセスをユーザーに許可する必要があります。詳細については、次の手順または「ロールを切り替えるユーザーアクセス権限の付与」を参照してください。

  4. 先ほど作成したファイルを使用して信頼ポリシーを更新するには、次のコマンドを実行します。

信頼された外部アカウントのユーザーにロールの使用を許可するには (AWS CLI)

この手順の詳細については、「ロールを切り替えるユーザーアクセス権限の付与」を参照してください。

  1. JSON ファイルを作成し、ロールを引き受けるためのアクセス許可を付与するアクセス許可ポリシーを含めます。たとえば、次のポリシーには必要最小限のアクセス権限が含まれています。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::ACCOUNT-ID-THAT-CONTAINS-ROLE:role/ROLE-NAME" } }

    ステートメント内の ARN を、ユーザーが引き受けるロールの ARN に置き換えます。

  2. 次のコマンドを実行し、信頼ポリシーが含まれている JSON ファイルを IAM にアップロードします。

    このコマンドの出力には、ポリシーの ARN が含まれています。この ARN を書き留めます。後のステップで必要になります。

  3. ポリシーをアタッチするユーザーまたはグループを決定します。目的のユーザーやグループの名前が不明である場合は、以下のいずれかのコマンドを使用して、アカウントのユーザーやグループを一覧表示します。

  4. 以下のいずれかのコマンドを使用して、前のステップで作成したポリシーをユーザーまたはグループにアタッチします。

ロールで許可されたアクセス許可を変更するには (AWS CLI)

  1. (オプション) ロールに現在関連付けられているアクセス許可を表示するには、以下のコマンドを実行します。

    1. aws iam list-role-policies (インラインポリシーの一覧表示)

    2. aws iam list-attached-role-policies (管理ポリシーの一覧表示)

  2. ロールのアクセス権限を更新するコマンドは、管理ポリシーとインラインポリシーのいずれを更新するかによって異なります。

    管理ポリシーを更新するには、次のコマンドを実行して新しいバージョンの管理ポリシーを作成します。

    インラインポリシーを更新するには、次のコマンドを実行します。

ロールのアクセス許可の境界を設定するために使用する管理ポリシーを変更するには (AWS CLI)

  1. (オプション) ロールの現在のアクセス許可の境界を表示するには、以下のコマンドを実行します。

  2. 別の管理ポリシーを使用してロールのアクセス許可の境界を更新するには、次のコマンドを実行します。

    ロールにアクセス許可の境界として設定できる管理ポリシーは 1 つのみです。アクセス許可の境界を変更する場合は、ロールに許可されるアクセス許可の上限を変更します。

ロールの説明を変更するには (AWS CLI)

  1. (オプション) ロールの現在の説明を表示するには、次のコマンドを実行します。

  2. ロールの説明を更新するには、説明パラメータを指定して、次のコマンドを実行します。

引き受けたロールの最大セッション継続時間設定を AWS CLI で変更するには (AWS CLI)

  1. (オプション) ロールの現在の最大セッション継続時間設定を表示するには、次のコマンドを実行します。

  2. ロールの最大セッション継続時間設定を更新するには、max-sessionduration CLI パラメータまたは MaxSessionDuration API パラメータを指定して、次のコマンドを実行します。

    変更は、次にこのロールが引き受けられるまで有効になりません。このロールの既存のセッションを取り消す方法については、「IAM ロールの一時的なセキュリティ認証情報の取り消し」を参照してください。

ロールの変更 (AWS API)

AWS API を使用してロールを変更できます。

ロールを引き受けるユーザーを変更するには (AWS API)

  1. (オプション) 変更するロールの名前が不明な場合は、次のオペレーションを呼び出してアカウントのロールを一覧表示します。

  2. (オプション) ロールの現在の信頼ポリシーを表示するには、次のオペレーションを呼び出します。

  3. ロールにアクセス可能な信頼されたプリンシパルを変更するには、更新された信頼ポリシーを使用してテキストファイルを作成します。ポリシーの作成には任意のテキストエディタを使用できます。

    以下の信頼ポリシーの例では、Principal 要素で 2 つの AWS アカウントを参照する方法を示します。これにより、2 つの別個の AWS アカウント内のユーザーが、このロールを引き受けることができます。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ]}, "Action": "sts:AssumeRole" } }

    ロールの信頼ポリシーにアカウントを追加しても、信頼関係は半分しか確立されていない点に注意してください。デフォルトでは、信頼されたアカウントのユーザーはロールを引き受けることができません。新しく信頼されたアカウントの管理者は、ロールを引き受けるアクセス許可をユーザーに付与する必要があります。これを行うには、ユーザーにアタッチするポリシーを作成または編集し、sts:AssumeRole アクションへのアクセスをユーザーに許可する必要があります。詳細については、次の手順または「ロールを切り替えるユーザーアクセス権限の付与」を参照してください。

  4. 先ほど作成したファイルを使用して信頼ポリシーを更新するには、次のオペレーションを呼び出します。

信頼された外部アカウントのユーザーにロールの使用を許可するには (AWS API)

この手順の詳細については、「ロールを切り替えるユーザーアクセス権限の付与」を参照してください。

  1. JSON ファイルを作成し、ロールを引き受けるためのアクセス許可を付与するアクセス許可ポリシーを含めます。たとえば、次のポリシーには必要最小限のアクセス権限が含まれています。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::ACCOUNT-ID-THAT-CONTAINS-ROLE:role/ROLE-NAME" } }

    ステートメント内の ARN を、ユーザーが引き受けるロールの ARN に置き換えます。

  2. 次のオペレーションを呼び出し、信頼ポリシーが含まれている JSON ファイルを IAM にアップロードします。

    このオペレーションの出力には、ポリシーの ARN が含まれています。この ARN を書き留めます。後のステップで必要になります。

  3. ポリシーをアタッチするユーザーまたはグループを決定します。目的のユーザーやグループの名前が不明である場合は、以下のいずれかのオペレーションを呼び出して、アカウントのユーザーやグループを一覧表示します。

  4. 以下のいずれかのオペレーションを呼び出して、前のステップで作成したポリシーをユーザーまたはグループにアタッチします。

ロールで許可されたアクセス許可を変更するには (AWS API)

  1. (オプション) ロールに現在関連付けられているアクセス許可を表示するには、以下のオペレーションを呼び出します。

    1. ListRolePolicies (インラインポリシーの一覧表示)

    2. ListAttachedRolePolicies (管理ポリシーの一覧表示)

  2. ロールのアクセス許可を更新するオペレーションは、管理ポリシーとインラインポリシーのいずれを更新するかによって異なります。

    管理ポリシーを更新するには、次のオペレーションを呼び出して新しいバージョンの管理ポリシーを作成します。

    インラインポリシーを更新するには、次のオペレーションを呼び出します。

ロールのアクセス許可の境界を設定するために使用する管理ポリシーを変更するには (AWS API)

  1. (オプション) ロールの現在のアクセス許可の境界を表示するには、以下のオペレーションを呼び出します。

  2. 別の管理ポリシーを使用してロールのアクセス許可の境界を更新するには、次のオペレーションを呼び出します。

    ロールにアクセス許可の境界として設定できる管理ポリシーは 1 つのみです。アクセス許可の境界を変更する場合は、ロールに許可されるアクセス許可の上限を変更します。

ロールの説明を変更するには (AWS API)

  1. (オプション) ロールの現在の説明を表示するには、次のオペレーションを呼び出します。

  2. ロールの説明を更新するには、説明パラメータを指定して、次のオペレーションを呼び出します。

引き受けたロールの最大セッション継続時間設定を API で変更するには (AWS API)

  1. (オプション) ロールの現在の最大セッション継続時間設定を表示するには、次のオペレーションを呼び出します。

  2. ロールの最大セッション継続時間設定を更新するには、max-sessionduration CLI パラメータまたは MaxSessionDuration API パラメータを指定して、次のオペレーションを呼び出します。

    変更は、次にこのロールが引き受けられるまで有効になりません。このロールの既存のセッションを取り消す方法については、「IAM ロールの一時的なセキュリティ認証情報の取り消し」を参照してください。