このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
eksctl を使用して ACK 機能を作成する
このトピックでは、eksctl を使用して Kubernetes 用 AWS コントローラー (ACK) 機能を作成する方法について説明します。
注記
以下のステップを実行するには、eksctl バージョン 0.220.0 以降が必要です。バージョンを確認するには、eksctl version を実行します。
ステップ 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 機能のセキュリティに関する考慮事項」を参照してください。
重要
このポリシーは、"Resource": "*" で S3 バケット管理に必要なアクセス許可を付与して、すべての S3 バケットに対してオペレーションを実行できるようにします。
本番稼働で使用する場合: * Resource フィールドを特定のバケット ARN または名前パターンに制限します。* IAM 条件キーを使用すると、リソースタグでアクセスを制限できます。* ユースケースに必要な最小限のアクセス許可のみを付与します。
その他の AWS サービスについては、「ACK アクセス許可を設定する」を参照してください。
ロールにポリシーを付与します。
aws iam attach-role-policy \ --role-name ACKCapabilityRole \ --policy-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):policy/ACKS3Policy
ステップ 2: ACK 機能を作成する
eksctl を使用して ACK 機能を作成します。region-code はクラスターがある AWS リージョンに、my-cluster はクラスターの名前に置き換えます。
eksctl create capability \ --cluster [.replaceable]`my-cluster` \ --region [.replaceable]`region-code` \ --name ack \ --type ACK \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \ --ack-service-controllers s3
注記
--ack-service-controllers フラグはオプションです。省略した場合、ACK は使用可能なすべてのコントローラーを有効にします。パフォーマンスとセキュリティを高めるため、必要なコントローラーのみを有効にすることを検討してください。--ack-service-controllers s3,rds,dynamodb のように、複数のコントローラーを指定できます。
このコマンドはすぐに戻りますが、機能がアクティブになるまでにはしばらく時間がかかります。
ステップ 3: 機能がアクティブであることを確認する
機能のステータスを確認します。
eksctl get capability \ --cluster [.replaceable]`my-cluster` \ --region [.replaceable]`region-code` \ --name ack
ステータスが ACTIVE と表示されたら、機能の準備は完了です。
ステップ 4: カスタムリソースが使用可能であることを確認する
機能がアクティブになったら、ACK カスタムリソースがクラスターで使用可能になっていることを確認します。
kubectl api-resources | grep services.k8s.aws
AWS リソースに使用可能な多数の API がリストされます。
注記
Kubernetes 用 AWS コントローラーの機能は、さまざまな AWS リソース用に多数の CRD をインストールします。
次のステップ
-
ACK の概念 - ACK の概念を理解して使用を開始する
-
ACK アクセス許可を設定する - 他の AWS サービスに対して IAM アクセス許可を設定する
-
機能リソースの使用 - ACK 機能リソースを管理する