

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# ハイブリッドノードのクラスターアクセスを準備する
<a name="hybrid-nodes-cluster-prep"></a>

ハイブリッドノードを Amazon EKS クラスターに接続するには、クラスターに参加するために Kubernetes のアクセス許可を持つハイブリッドノードの IAM ロールを有効にする必要があります。ハイブリッドノードの IAM ロールの作成方法については、「[ハイブリッドノードの認証情報を準備する](hybrid-nodes-creds.md)」を参照してください。Amazon EKS は、IAM プリンシパルを Kubernetes ロールベースアクセスコントロール (RBAC) に関連付ける方法として、Amazon EKS アクセスエントリと `aws-auth` ConfigMap の 2 つをサポートしています。Amazon EKS アクセス管理の詳細については、「[IAM ユーザーおよびロールに Kubernetes API へのアクセスを付与する](grant-k8s-access.md)」を参照してください。

以下の手順を使用して、ハイブリッドノードの IAM ロールを Kubernetes のアクセス許可に関連付けます。Amazon EKS のアクセスエントリを使用するには、クラスターが `API` または `API_AND_CONFIG_MAP` 認証モードで作成されている必要があります。`aws-auth` ConfigMap を使用するには、クラスターが `API_AND_CONFIG_MAP` 認証モードで作成されている必要があります。`CONFIG_MAP` のみの認証モードは、ハイブリッドノードが有効な Amazon EKS クラスターではサポートされていません。

## ハイブリッドノードの IAM ロールに Amazon EKS のアクセスエントリを使用する
<a name="_using_amazon_eks_access_entries_for_hybrid_nodes_iam_role"></a>

IAM ロールと組み合わせて使用できる、HYBRID\$1LINUX というハイブリッドノード用 Amazon EKS アクセスエントリタイプがあります。このアクセスエントリタイプでは、ユーザー名は自動的に system:node:\$1\$1SessionName\$1\$1 に設定されます。アクセスエントリの作成の詳細については、「[アクセスエントリを作成する](creating-access-entries.md)」を参照してください。

### AWS CLI
<a name="shared_aws_cli"></a>

1. デバイスに最新バージョンの AWS CLI をインストールし、設定しておく必要があります。現在のバージョンを確認するには「`aws --version`」を参照してください。yum、apt-get、macOS 用の Homebrew などのパッケージマネージャーは、多くの場合 AWS CLI の最新バージョンより数バージョン古くなっています。最新バージョンをインストールするには、「AWS コマンドラインインターフェイスユーザーガイド」の「インストール」および「aws configure を使用したクイック設定」を参照してください。

1. 以下のコマンドを使用してアクセスエントリーを作成します。CLUSTER\$1NAME をお使いのクラスターの名前に、HYBRID\$1NODES\$1ROLE\$1ARN を [ハイブリッドノードの認証情報を準備する](hybrid-nodes-creds.md) のステップで作成したロールの ARN に置き換えます。

   ```
   aws eks create-access-entry --cluster-name CLUSTER_NAME \
       --principal-arn HYBRID_NODES_ROLE_ARN \
       --type HYBRID_LINUX
   ```

### AWS マネジメントコンソール
<a name="hybrid-nodes-cluster-prep-console"></a>

1. [Amazon EKS コンソール](https://console.aws.amazon.com/eks/home#/clusters)で Amazon EKS コンソールを開きます。

1. ハイブリッドノードが有効なクラスターの名前を選択します。

1. **[リモートアクセス]** タブを選択してください。

1. **[アクセスエントリの作成]** を選択してください。

1. **[IAM プリンシパル]** には、「[ハイブリッドノードの認証情報を準備する](hybrid-nodes-creds.md)」のステップで作成したハイブリッドノードの IAM ロールを選択します。

1. **[タイプ]** には **Hybrid Linux** を選択します。

1. (オプション) **[タグ]** ではアクセスエントリにラベルを割り当てます。例えば、同じタグを持つすべてのリソースを検索しやすくするためです。

1. **[レビューと作成にスキップ]** を選択します。Hybrid Linux のアクセスエントリにポリシーを追加することや、アクセス範囲を変更することはできません。

1. アクセスエントリの設定を確認してください。何かが正しくないと思われる場合は**[戻る]** を選択してステップに戻り、エラーを修正します。設定が正しければ、**[作成]** を選択してください。

## ハイブリッドノードの IAM ロールに aws-auth ConfigMap を使用する
<a name="_using_aws_auth_configmap_for_hybrid_nodes_iam_role"></a>

以下のステップでは、[ハイブリッドノードの認証情報を準備する](hybrid-nodes-creds.md) のステップで作成したハイブリッドノード IAM ロールの ARN を使用して、`aws-auth` ConfigMap を作成または更新します。

1. クラスターに既存の `aws-auth` ConfigMap があるかどうかを確認します。特定の `kubeconfig` ファイルを使用している場合は、`--kubeconfig` フラグを使用してください。

   ```
   kubectl describe configmap -n kube-system aws-auth
   ```

1. `aws-auth` ConfigMap が表示されている場合は、必要に応じて更新してください。

   1. ConfigMap を編集用に開きます。

      ```
      kubectl edit -n kube-system configmap/aws-auth
      ```

   1. 必要に応じて新しい `mapRoles` エントリを追加します。`HYBRID_NODES_ROLE_ARN` をハイブリッドノード IAM ロールの ARN に置き換えます。なお、`{{SessionName}}` は ConfigMap に保存するための正しいテンプレート形式です。他の値には置き換えないでください。

      ```
      data:
        mapRoles: |
        - groups:
          - system:bootstrappers
          - system:nodes
          rolearn: HYBRID_NODES_ROLE_ARN
          username: system:node:{{SessionName}}
      ```

   1. ファイルを保存し、テキストエディタを終了します。

1. クラスターに既存の `aws-auth` ConfigMap がない場合は、以下のコマンドを使用して作成します。`HYBRID_NODES_ROLE_ARN` をハイブリッドノード IAM ロールの ARN に置き換えます。なお、`{{SessionName}}` は ConfigMap に保存するための正しいテンプレート形式です。他の値には置き換えないでください。

   ```
   kubectl apply -f=/dev/stdin <<-EOF
   apiVersion: v1
   kind: ConfigMap
   metadata:
     name: aws-auth
     namespace: kube-system
   data:
     mapRoles: |
     - groups:
       - system:bootstrappers
       - system:nodes
       rolearn: HYBRID_NODES_ROLE_ARN
       username: system:node:{{SessionName}}
   EOF
   ```