AWS CLI を使用して ACK 機能を作成する - Amazon EKS

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

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

AWS CLI を使用して ACK 機能を作成する

このトピックでは、AWS CLI を使用して Kubernetes 用 AWS コントローラー (ACK) 機能を作成する方法について説明します。

前提条件

  • AWS CLI バージョン 2.12.3 以降。バージョンを確認するには、aws --version を実行します。詳細についてはAWS コマンドラインインターフェイスユーザーガイドの「インストール」を参照してください。

  • kubectl - Kubernetes クラスターを操作するためのコマンドラインツール。詳細については、「kubectl および eksctl のセットアップ」を参照してください。

ステップ 1: IAM 機能ロールを作成する

信頼ポリシーファイルを作成します。

cat > ack-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF

IAM ロールを作成します。

aws iam create-role \ --role-name ACKCapabilityRole \ --assume-role-policy-document file://ack-trust-policy.json

AdministratorAccess マネージドポリシーをロールにアタッチします。

aws iam attach-role-policy \ --role-name ACKCapabilityRole \ --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
重要

提案された AdministratorAccess ポリシーは、幅広いアクセス許可を付与し、使用開始を効率化することを目的としています。本番稼働で使用する場合は、これをカスタムポリシーに置き換えて、そのポリシーでは ACK で管理する特定の AWS サービスに必要なアクセス許可のみを付与します。最小特権ポリシーを作成する際のガイダンスについては、「ACK アクセス許可を設定する」および「EKS 機能のセキュリティに関する考慮事項」を参照してください。

ステップ 2: ACK 機能を作成する

ACK 機能リソースをクラスターに作成します。region-code はクラスターがある AWS リージョンに、my-cluster はクラスターの名前に置き換えます。

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack \ --type ACK \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \ --delete-propagation-policy RETAIN

このコマンドはすぐに戻りますが、EKS が必要な機能インフラストラクチャとコンポーネントを作成するため、機能がアクティブになるまでにはしばらく時間がかかります。EKS は、この機能に関連する Kubernetes カスタムリソース定義をその作成時にクラスターにインストールします。

注記

クラスターが存在しないというエラーやアクセス許可がないというエラーが表示された場合は、以下の点を確認します。

  • クラスター名が正しいこと

  • AWS CLI が正しいリージョンに設定されていること

  • 必要な IAM アクセス許可を追加したこと

ステップ 3: 機能がアクティブであることを確認する

機能がアクティブになるまで待機します。region-code はクラスターがある AWS リージョンに、my-cluster はクラスターの名前に置き換えます。

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack \ --query 'capability.status' \ --output text

ステータスが ACTIVE と表示されたら、機能の準備は完了です。ステータスが ACTIVE になるまで、次のステップに進まないでください。

機能の詳細全体を表示することもできます。

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack

ステップ 4: カスタムリソースが使用可能であることを確認する

機能がアクティブになったら、ACK カスタムリソースがクラスターで使用可能になっていることを確認します。

kubectl api-resources | grep services.k8s.aws

AWS リソースに使用可能な多数の API がリストされます。

注記

Kubernetes 用 AWS コントローラーの機能は、さまざまな AWS リソース用に多数の CRD をインストールします。

次のステップ