AWS IAM インスタンス プロファイルを更新する

このページでは、AWS IAM インスタンス プロファイルの概要、GKE on AWS のコンテキストでの重要性、インスタンス プロファイルの更新方法について説明します。

AWS IAM インスタンス プロファイルとは

インスタンス プロファイルは AWS 固有のコンセプトです。Amazon EC2 インスタンスがさまざまな AWS リソースにアクセスするために使用する一連の認証情報で構成されます。 具体的には、インスタンス プロファイルは、EC2 インスタンスに接続できる IAM ロールのコンテナの一種です。インスタンス プロファイルは、EC2 インスタンスに権限を付与し、インスタンスが定義された権限の下でさまざまな AWS サービスを操作できるようにします。詳細については、インスタンス プロファイルの使用をご覧ください。

インスタンス プロファイルは GKE on AWS でどのように使用されるのか

GKE on AWS クラスタ内の各コントロール プレーンとノードプールは、一意の AWS インスタンス プロファイルに関連付けられます。GKE on AWS のインスタンス プロファイルには 2 つの目的があります。

  1. インスタンス プロファイルは、AWS リソースの管理に必要な権限を GKE on AWS に付与します。たとえば、ワークロードの需要に基づいて EC2 インスタンスを追加または削除することで、クラスタ オートスケーラーにクラスタをスケーリングするために必要な権限を付与します。
  2. インスタンス プロファイルは、EC2 インスタンスに Google Cloud サービスへのアクセスを許可します。 たとえば、AWS マシンで実行される kubelet には、containerd にイメージの pull 認証情報を提供する特定の権限が必要です。これらの認証情報は、Google の限定公開 Artifact Registry または Container Registry からイメージにアクセスして pull するために必要です。GKE on AWS のコンテキストでは、クラスタに関連付けられた EC2 インスタンス プロファイルは、Google のマシンサービス エージェント(ノードプールのマシン サービス エージェントやコントロール プレーンのマシン サービス エージェントなど)の権限を借用するように構成されます。この権限借用によって、クラスタの EC2 インスタンスが Google の Artifact Registry または Container Registry で自動的に認証できます。

インスタンス プロファイルを更新する

インスタンス プロファイルを更新するには、AWS で特定の権限を持つ新しいインスタンス プロファイルを作成し、GKE on AWS クラスタまたはノードプールに関連付けます。

クラスタまたはノードプールのインスタンス プロファイルを正しく更新するには、次の手順を行います。

  1. Amazon EC2 インスタンスの IAM インスタンス プロファイルを作成し、その IAM ロールをインスタンス プロファイルに追加します。詳細については、インスタンス プロファイルの使用をご覧ください。
  2. Google Cloud CLI で次のコマンドを実行して、新しいインスタンス プロファイルを GKE on AWS クラスタまたはノードプールにリンクします。

    gcloud container aws clusters update CLUSTER_NAME \
      --update-instance-profile \
      --instance-profile-name NEW_INSTANCE_PROFILE_NAME \
      ...
    

    次のように置き換えます。

    • CLUSTER_NAME: クラスタの名前
    • NEW_INSTANCE_PROFILE_NAME: 作成した新しい AWS インスタンス プロファイルの名前
    gcloud container aws node-pools update NODE_POOL_NAME \
      --update-instance-profile \
      --instance-profile-name NEW_INSTANCE_PROFILE_NAME \
      ...
    

    次のように置き換えます。

    • NODE_POOL_NAME: ノードプールの名前。
    • NEW_INSTANCE_PROFILE_NAME: 作成した新しい AWS インスタンス プロファイルの名前

    これらのコマンドは、インスタンス プロファイルの更新に関連するフラグのみを表示しますが、update コマンドを実行するには、追加のフラグを指定する必要があります。詳細については、AWS クラスタ パラメータの更新またはノードプールの更新をご覧ください。

誤った更新方法

クラスタ障害を引き起こす可能性がある単純な誤りのため、インスタンス プロファイルを更新する誤った方法を理解することが重要です。

インスタンス プロファイルを更新する誤った方法は、AWS Management Console または AWS CLI を使用して既存のインスタンス プロファイルを直接変更することです。このような変更により、GKE on AWS と AWS リソースとのやり取りが中断される可能性があります。GKE on AWS では、インスタンス プロファイルがクラスタまたはノードプールに最初にリンクしたときの状態のままであることを想定しています。GKE on AWS の管理ツール以外で変更すると、インスタンス プロファイルにある IAM ロールの ID が一致しない場合があります。この不一致によりクラスタ障害が発生する可能性があります。

前のセクションで説明した方法により、GKE on AWS と AWS の統合を中断することなく更新できます。