Amazon EKS アイデンティティベースのポリシーの例 - Amazon EKS

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon EKS アイデンティティベースのポリシーの例

デフォルトでは、IAM ユーザーおよびロールには、Amazon EKS リソースを作成または変更するアクセス許可がありません。また、AWS マネジメントコンソール、AWS CLI、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行するアクセス許可をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらのアクセス権限が必要な IAM ユーザーまたはグループにそのポリシーをアタッチします。

JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイド の「[JSON] タブでのポリシーの 作成.」を参照してください。

Amazon EKS クラスターを作成すると、このクラスターを作成した IAM エンティティユーザーまたはロール (例: フェデレーティッドユーザー) は、コントロールプレーンのクラスターの RBAC 設定で system:masters のアクセス許可が自動的に付与されます。この IAM エンティティは、ConfigMap やその他の表示可能な設定には表示されません。そのため、もともとクラスターを作成した IAM エンティティを必ず追跡してください。クラスターを操作する権限を他の AWS ユーザーやロールに付与するには、Kubernetes 内の aws-auth ConfigMap を編集する必要があります。

ConfigMap の使用の詳細については、クラスターのユーザーまたは IAM ロールの管理 を参照してください。

ポリシーのベストプラクティス

アイデンティティベースのポリシーは非常に強力です。アカウント内で、Amazon EKS リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションを実行すると、AWS アカウントに追加料金が発生する可能性があります。アイデンティティベースのポリシーを作成または編集するときは、以下のガイドラインと推奨事項に従います。

  • AWS 管理ポリシーの使用を開始する – Amazon EKS の使用をすばやく開始するには、AWS 管理ポリシーを使用して、従業員に必要なアクセス許可を付与します。これらのポリシーはアカウントですでに有効になっており、AWS によって管理および更新されています。詳細については、『IAM ユーザーガイド』の「AWS 管理ポリシーを使用したアクセス許可の使用開始」を参照してください。

  • 最小権限を付与する – カスタムポリシーを作成するときは、タスクの実行に必要なアクセス許可のみを付与します。最小限のアクセス権限から開始し、必要に応じて追加のアクセス権限を付与します。この方法は、寛容なアクセス権限で始め、後でそれらを強化しようとするよりも安全です。詳細については、「最小権限を付与する」 (IAM ユーザーガイド) を参照してください。

  • 機密性の高いオペレーションのために MFA を有効にする – 追加のセキュリティとして、機密性の高いリソースや API オペレーションにアクセスする際に Multi-Factor Authentication (MFA) を使用することを IAM ユーザーに要求します。詳細については、『IAM ユーザーガイド』の「AWS のデバイスに多要素認証 (MFA) を使用」を参照してください。

  • 追加のセキュリティとしてポリシー条件を使用する – 実行可能な範囲内で、アイデンティティベースのポリシーでリソースへのアクセスを許可する条件を定義します。たとえば、要求が発生しなければならない許容 IP アドレスの範囲を指定するための条件を記述できます。指定された日付または時間範囲内でのみリクエストを許可する条件を書くことも、SSL や MFA の使用を要求することもできます。ポリシー要素の詳細については、『IAM ユーザーガイド』の「IAM JSON ポリシー要素: 条件」を参照してください。

Amazon EKS コンソールを使用する

Amazon EKS コンソールにアクセスするには、一連の最小限のアクセス許可が必要です。これらのアクセス許可により、Amazon EKS アカウントの AWS リソースの詳細をリストおよび表示できます。最小限必要なアクセス許可よりも制限されたアイデンティティベースのポリシーを作成すると、そのポリシーをアタッチしたエンティティ (IAM ユーザーまたはロール) に対してはコンソールが意図したとおりに機能しません。

重要

コンソールで [Error loading Namespaces (名前空間のロードエラー)] エラーが表示されるか、[Overview (概要)] タブまたは [Workloads (ワークロード)] タブに何も表示されない場合はワークロードまたはノードを確認して、 でエラーを受け取ることができない AWS マネジメントコンソール、「」を参照して問題を解決します。問題が解決しない場合はAmazon EKS、[設定] タブでクラスターの側面を表示および管理できます。

これらのエンティティが Amazon EKS コンソールを使用できるように、独自の名前 ( など) でポリシーを作成しますAmazonEKSAdminPolicy。 エンティティにポリシーをアタッチします。詳細については、の「ユーザーへのアクセス許可の追加」を参照してくださいIAM ユーザーガイド

重要

次のポリシー例では、 コンソールの [設定] タブで情報を表示できるようにします。でノードワークロードに関する情報を表示するにはAWS マネジメントコンソール、追加のIAMアクセス権限と Kubernetes アクセス権限が必要です。詳細については、ポリシーですべてのクラスターのノードとワークロードを表示する AWS マネジメントコンソール例を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "eks.amazonaws.com" } } } ] }

AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

ですべてのクラスターのノードとワークロードを表示する AWS マネジメントコンソール

この例では、すべてのView ノードクラスターに対して ワークロードの表示 と をユーザーに許可するポリシーを作成する方法を示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeNodegroup", "eks:ListNodegroups", "eks:DescribeCluster", "eks:ListClusters", "eks:AccessKubernetesApi", "ssm:GetParameter", "eks:ListUpdates", "eks:ListFargateProfiles" ], "Resource": "*" } ] }
重要

ポリシーはaws-auth、configmap の Kubernetes ユーザーまたはグループにマッピングされたユーザーまたはロールにアタッチする必要があります。ユーザーまたはグループsubjectは、Kubernetes にバインドrolebindingされているclusterrolebindingroleまたは Kubernetes リソースを表示するために必要なアクセス許可を持つ clusterrole の または である必要があります。IAM ユーザーまたはロールを aws-auth configmap に追加する方法の詳細についてはクラスターのユーザーまたは IAM ロールの管理、「」を参照してください。ロールとロールバインディングを作成するには、Kubernetes ドキュメントの「RBAC 認証https://kubernetes.io/docs/reference/access-authn-authz/rbac/の使用」を参照してください。および clusterrole または clusterrolebinding と を作成する次のマニフェスト例をダウンロードできますrolerolebinding

  • [View Kubernetes resources in all namespaces– (すべての名前空間で Kubernetes リソースを表示する)] ファイルのグループ名は です。これはeks-console-dashboard-full-access-group、IAMユーザーまたはロールを aws-auth configmap でマッピングする必要があるグループです。必要に応じて、クラスターに適用する前にグループの名前を変更し、configmap でそのグループにIAMユーザーまたはロールをマッピングできます。ファイルをダウンロードするには、クラスターがあるリージョンの適切なリンクを選択します。

  • 特定の名前空間の Kubernetes リソースを表示する – このファイルの 名前空間は であるためdefault、別の名前空間を指定する場合は、 ファイルを編集してからクラスターに適用します。ファイルのグループ名は です。これはeks-console-dashboard-restricted-access-group、IAMユーザーまたはロールを aws-auth configmap でマッピングする必要があるグループです。必要に応じて、クラスターに適用する前にグループの名前を変更し、configmap でそのグループにIAMユーザーまたはロールをマッピングできます。ファイルをダウンロードするには、クラスターがあるリージョンの適切なリンクを選択します。

自分のアクセス許可の表示をユーザーに許可する

この例では、ユーザー ID にアタッチされたインラインおよび管理ポリシーの表示を IAM ユーザーに許可するポリシーを作成する方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了するアクセス許可が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Kubernetes クラスターの更新

この例では、任意のリージョンで、アカウントの dev クラスターの Kubernetes バージョンを更新することをユーザーに許可するポリシーを作成する方法を示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "eks:UpdateClusterVersion", "Resource": "arn:aws:eks:*:<111122223333>:cluster/<dev>" } ] }

すべてのクラスターの一覧表示または説明

この例は、すべてのクラスターの一覧表示または説明するための読み取り専用アクセス許可をユーザーに許可するポリシーを作成する方法を示しています。update-kubeconfigAWS CLI コマンドを使用するには、アカウントでクラスターの一覧表示と説明が可能である必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster", "eks:ListClusters" ], "Resource": "*" } ] }