選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

步驟 1:設定 Amazon EKS 叢集並設定 IAM 許可

焦點模式
步驟 1:設定 Amazon EKS 叢集並設定 IAM 許可 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon EKS 叢集並建立所需的 IAM 資源,以允許 Amazon EKS 服務帳戶連接到您的 Amazon Keyspaces 表格
  1. 為 Amazon EKS 叢集建立開放式 ID Connect (OIDC) 提供者。若要針對服務帳戶使用 IAM 角色,則需要執行此動作。如需有關 OIDC 提供者及如何建立它們的詳細資訊,請參閱 Amazon EKS 使用者指南中的為叢集建立 IAM OIDC 提供者

    1. 使用下列命令為您的叢集建立 IAM OIDC 身分提供者。此範例假設您的叢集名稱為my-eks-cluster。如果您有不同名稱的叢集,請記得在以 future 的所有命令中更新名稱。

      eksctl utils associate-iam-oidc-provider --cluster my-eks-cluster --approve
    2. 使用以下命令確認 OIDC 身分提供者已向 IAM 註冊。

      aws iam list-open-id-connect-providers --region aws-region

      輸出看起來應該類似於這個。記下 OIDC 的 Amazon 資源名稱 (ARN),您在下一個步驟中為服務帳戶建立信任政策時需要它。

      { "OpenIDConnectProviderList": [ .. { "Arn": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.aws-region.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" } ] }
  2. 為 Amazon EKS 叢集建立服務帳戶。服務帳戶會為在網繭中執行的處理程序提供身分識別。Pod 是可用來部署容器化應用程式的最小且最簡單的 Kubernetes 物件。接下來,建立服務帳戶可以假設為取得資源許可的 IAM 角色。您可以從已設定為使用可承擔具有該服務存取權限的 IAM 角色的服務帳戶存取任 AWS 何服務。

    1. 為服務帳戶建立新的命名空間。命名空間有助於隔離針對本教學課程建立的叢集資源。您可以使用以下命令創建一個新的命名空間。

      kubectl create namespace my-eks-namespace
    2. 要使用自定義命名空間,您必須將其與 Fargate 配置文件相關聯。下面的代碼是這樣的一個例子。

      eksctl create fargateprofile \ --cluster my-eks-cluster \ --name my-fargate-profile \ --namespace my-eks-namespace \ --labels *=*
    3. 使用下列命令my-eks-serviceaccount在 Amazon EKS 叢集的命名空my-eks-namespace間中建立名稱的服務帳戶。

      cat >my-serviceaccount.yaml <<EOF apiVersion: v1 kind: ServiceAccount metadata: name: my-eks-serviceaccount namespace: my-eks-namespace EOF kubectl apply -f my-serviceaccount.yaml
    4. 執行下列命令以建立信任政策檔案,以指示 IAM 角色信任您的服務帳戶。主參與者可以擔任角色之前,需要此信任關係。您需要對文件進行以下編輯:

      • 對於Principal,請輸入 IAM 傳回給list-open-id-connect-providers命令的 ARN。ARN 包含您的帳號和地區。

      • condition陳述式中,取代 AWS 區域 和 OIDC 識別碼。

      • 確認服務帳戶名稱和命名空間是否正確。

      建立 IAM 角色時,您需要在下一個步驟中附加信任政策檔案。

      cat >trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.aws-region.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.aws-region.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:my-eks-namespace:my-eks-serviceaccount", "oidc.eks.aws-region.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] } EOF

      可選:您也可以在StringEqualsStringLike條件中新增多個項目,以允許多個服務帳戶或命名空間擔任該角色。若要允許您的服務帳戶在不同 AWS 帳戶中擔任 IAM 角色,請參閱 Amazon EKS 使用者指南中的跨帳戶 IAM 許可。

  3. 使用要假設的 Amazon EKS 服務帳戶名稱my-iam-role建立 IAM 角色。將在最後一個步驟中建立的信任原則檔案附加至角色。信任政策會指定 IAM 角色可信任的服務帳戶和 OIDC 提供者。

    aws iam create-role --role-name my-iam-role --assume-role-policy-document file://trust-relationship.json --description "EKS service account role"
  4. 透過附加存取政策,將 IAM 角色許可指派給 Amazon Keyspaces。

    1. 附加存取政策以定義 IAM 角色可在特定 Amazon Keyspaces 資源上執行的動作。在本教程中,我們使用 AWS 受管政策AmazonKeyspacesFullAccess,因為我們的應用程序將數據寫入您的 Amazon Keyspaces 表。不過,最佳作法是建議您建立實作最低權限原則的自訂存取原則。如需詳細資訊,請參閱 Amazon Keyspaces 如何使用 IAM

      aws iam attach-role-policy --role-name my-iam-role --policy-arn=arn:aws:iam::aws:policy/AmazonKeyspacesFullAccess

      使用下列陳述式確認政策已成功附加至 IAM 角色。

      aws iam list-attached-role-policies --role-name my-iam-role

      輸出應該是這樣的。

      { "AttachedPolicies": [ { "PolicyName": "AmazonKeyspacesFullAccess", "PolicyArn": "arn:aws:iam::aws:policy/AmazonKeyspacesFullAccess" } ] }
    2. 使用可承擔的 IAM 角色的 Amazon 資源名稱 (ARN) 為服務帳戶加上註解。確保使用您的帳戶 ID 更新角色 ARN。

      kubectl annotate serviceaccount -n my-eks-namespace my-eks-serviceaccount eks.amazonaws.com/role-arn=arn:aws:iam::111122223333:role/my-iam-role
  5. 確認 IAM 角色和服務帳戶設定正確。

    1. 使用下列陳述式確認 IAM 角色的信任政策已正確設定。

      aws iam get-role --role-name my-iam-role --query Role.AssumeRolePolicyDocument

      輸出看起來應該類似於這個。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.aws-region.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.aws-region/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com", "oidc.eks.aws-region.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:my-eks-namespace:my-eks-serviceaccount" } } } ] }
    2. 確認已使用 IAM 角色註釋 Amazon EKS 服務帳戶。

      kubectl describe serviceaccount my-eks-serviceaccount -n my-eks-namespace

      輸出看起來應該類似於這個。

      Name: my-eks-serviceaccount Namespace:my-eks-namespace Labels: <none> Annotations: eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/my-iam-role Image pull secrets: <none> Mountable secrets: <none> Tokens: <none> [...]

建立 Amazon EKS 服務帳戶、IAM 角色並設定必要的關係和許可後,請繼續執行步驟 2:設定應用程式

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。