本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。
IAMロールとAWS Secretを作成する
KubernetesポッドがAWSリソースにアクセスするように設定するには、明示的なAWSクレデンシャルを指定する代わりに、AWS IAMロールとして認証します。
|
AWS IAMロールを使用して認証するには、EKSを使用してKubernetesクラスタを導入する必要があります。 |
AWS Secret Managerシークレットの作成
次の例では、Trident CSIクレデンシャルを格納するAWSシークレットマネージャシークレットを作成します。
aws secretsmanager create-secret --name trident-secret --description "Trident CSI credentials"\ --secret-string "{\"username\":\"vsadmin\",\"password\":\"<svmpassword>\"}"
IAMポリシーの作成
次の例は、AWS CLIを使用して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 CLI
aws iam create-role --role-name trident-controller \ --assume-role-policy-document file://trust-relationship.json
-
trust-relationship.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`ます。
-
<account_id>-お客様のAWSアカウントID
-
<oidc_provider>- EKSクラスタの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>
-
OICDプロバイダが関連付けられていることを確認します*:
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
eksctl
次の例では、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