本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。
创建IAM角色和AWS机密
您可以通过作为AWS IAM角色进行身份验证(而不是提供显式AWS凭据)来配置Kubbernetes Pod以访问AWS资源。
|
要使用AWS IAM角色进行身份验证、您必须使用EKS部署Kubenetes集群。 |
创建AWS机密管理器密钥
以下示例将创建一个AWS机密管理器密钥、用于存储Trident CSI凭据:
aws secretsmanager create-secret --name trident-secret --description "Trident CSI credentials"\ --secret-string "{\"username\":\"vsadmin\",\"password\":\"<svmpassword>\"}"
创建IAM策略
以下示例将使用AWS命令行界面创建IAM策略:
aws iam create-policy --policy-name AmazonFSxNCSIDriverPolicy --policy-document file://policy.json --description "This policy grants access to Trident CSI to FSxN and Secret manager"
策略JSON文件:
policy.json: { "Statement": [ { "Action": [ "fsx:DescribeFileSystems", "fsx:DescribeVolumes", "fsx:CreateVolume", "fsx:RestoreVolumeFromSnapshot", "fsx:DescribeStorageVirtualMachines", "fsx:UntagResource", "fsx:UpdateVolume", "fsx:TagResource", "fsx:DeleteVolume" ], "Effect": "Allow", "Resource": "*" }, { "Action": "secretsmanager:GetSecretValue", "Effect": "Allow", "Resource": "arn:aws:secretsmanager:<aws-region>:<aws-account-id>:secret:<aws-secret-manager-name>*" } ], "Version": "2012-10-17" }
为服务帐户创建IAM角色
AWS命令行界面
aws iam create-role --role-name trident-controller \ --assume-role-policy-document file://trust-relationship.json
信任关系.json文件:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::<account_id>:oidc-provider/<oidc_provider>" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "<oidc_provider>:aud": "sts.amazonaws.com", "<oidc_provider>:sub": "system:serviceaccount:trident:trident-controller" } } } ] }
更新文件中的以下值 trust-relationship.json
:
-
AWS-您的<account_id>帐户ID
-
EKS-<oidc_provider>集群的OIDC*。您可以通过运行以下命令来获取oidc_Provider:
aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer"\ --output text | sed -e "s/^https:\/\///"
将IAM角色附加到IAM策略:
创建角色后、使用以下命令将在上述步骤中创建的策略附加到此角色:
aws iam attach-role-policy --role-name my-role --policy-arn <IAM policy ARN>
验证OCD提供程序是否关联:
验证OIDC提供程序是否已与集群关联。您可以使用以下命令进行验证:
aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4
使用以下命令将IAM OIDC与集群关联:
eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve
eksc
以下示例将在EKS中为服务帐户创建IAM角色:
eksctl create iamserviceaccount --name trident-controller --namespace trident \ --cluster <my-cluster> --role-name <AmazonEKS_FSxN_CSI_DriverRole> --role-only \ --attach-policy-arn <IAM-Policy ARN> --approve