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

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

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「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 をインストールします。

次のステップ