スキップしてコンテンツを表示

IAM を使用して別の AWS アカウントのリソースにアクセスする方法を教えてください。

所要時間1分
0

別の AWS アカウントにある AWS Identity and Access Management (IAM) ロールへのクロスアカウントアクセスを設定したいです。

簡単な説明

重要: AWS では、長期的な認証情報 (アクセスキー) を持つ IAM ユーザーではなく、一時的な認証情報を持つ IAM ロールをクロスアカウントアクセスに使用することを推奨しています。IAM ロールは、自動的に更新される一時的なセキュリティ認証情報を提供します。これにより、長期的な認証情報に関連するセキュリティリスクが軽減されます。

別の AWS アカウントのリソースにアクセスするために、IAM ロールとの信頼関係を設定します。このアプローチでは、AssumeRole API オペレーションを使用して一時的なセキュリティ認証情報を取得します。

送信元アカウントから送信先アカウントにアクセスするケースを例に挙げます。送信元アカウントの IAM ロールを設定して、送信先アカウントの IAM ロールを引き受けます。IAM ロールを使用したクロスアカウントアクセスの詳細については、「所有している別の AWS アカウント内の IAM ユーザーに対するアクセス」を参照してください。

注: ロール連鎖を使用して、送信元 IAM ロールから送信先 IAM ロールにロールを引き継ぐこともできます。ロール連鎖は、AWS コマンドラインインターフェイス (AWS CLI) や API などのプログラムによるアクセスでのみ機能します。ロール連鎖は AWS マネジメントコンソールでは使用できません。

解決策

注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

IAM を使用して別の AWS アカウントのリソースにアクセスするには、次の手順を実行します。

送信元アカウント

次の手順を実行します。

  1. JSON エディタを使用して、送信先ロールを引き受けるアクセス許可を付与する IAM ポリシーを作成します。
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "sts:AssumeRole"
          ],
          "Resource": [
            "arn:aws:iam::DESTINATION-ACCOUNT-ID:role/DESTINATION-ROLENAME"
          ]
        }
      ]
    }
    注: DESTINATION-ACCOUNT-IDDESTINATION-ROLENAME は、実際の値に置き換えます。
  2. SourceRole に IAM ポリシーをアタッチします。

送信先アカウント

次の手順を実行します。

  1. コンソールで IAM ロールを作成します。
  2. 送信元アカウントロールがこのロールを引き受けることを許可するカスタム信頼ポリシーを作成します。
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::SOURCE-ACCOUNT-ID:role/SOURCE-ROLENAME"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    注: SOURCE-ACCOUNT-IDSOURCE-USERNAME は、実際の値に置き換えます。
  3. 送信先アカウントで必要な、特定のリソースへのアクセスを許可するアクセス許可ポリシーをこのロールにアタッチします。

注: IAM ロールの作成、編集を行うアクセス許可がない場合は、アカウント所有者にサポートを依頼したうえで、プロセスを完了してください。アカウントとリソースへのアクセスを制限して、信頼するエンティティだけがアクセスできるようにするのがベストプラクティスです。

このポリシーを変更すると、必要に応じて複数の送信元エンティティを複数の送信先ロールで引き受けることができます。例えば、送信先アカウントの信頼ポリシーの Principal 値を**"AWS": "SOURCE-ACCOUNT-ID"** に変更すると、ロールを引き受けるアクセス許可を持つ送信元アカウントのすべてのエンティティが送信先アカウントロールを引き受けることができます。詳細については、「プリンシパルを指定する方法」および「ポリシーの作成または編集」を参照してください。

アクセスをテストする

アクセスをテストするには、「ユーザーから IAM ロールに切り替える (コンソール)」または「IAM ロールに切り替える (AWS CLI)」の手順を実行します。詳細については、「IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任」を参照してください。

関連情報

IAM でのクロスアカウントのリソースへのアクセス

AWS CLI を使用して IAM ロールを引き受ける方法を教えてください

IAM ポリシーを作成または更新する際に発生する、「Has prohibited field Principal」というエラーの解決方法を教えてください

Amazon S3 バケットにあるオブジェクトに対するクロスアカウントアクセス許可を付与するにはどうすればよいですか?

クロスアカウントの IAM ロールを引き受けようとしたときの「AccessDenied」または「無効な情報」エラーを解決する方法を教えてください

コメントはありません

関連するコンテンツ