X. 509クライアント証明書により、データベースユーザーにプロジェクト内のデータベース配置にアクセスできます。 Atlas Kubernetes Operator を使用して、   AtlasProjectカスタム リソースとAtlasDatabaseUserカスタム リソースの X. 509認証を有効にします。
X.509認証のオプションとして、Atlas が管理する X.509認証と、自己管理型のX.509認証があります。自己管理型のX.509認証の詳細については、自己管理型 X.509 証明書の設定を参照してください。
X.509 認証を設定するには、次の手順に従います。
- X.509 証明書を生成します。 
- 証明書を使用するように - AtlasProjectカスタム リソースを構成します。
- Atlas が管理するまたは自己管理型の X.509 認証を使用するように - AtlasDatabaseUserカスタム リソースを構成します。
前提条件
注意
自己管理型の X.509 証明書を使用するには、MongoDB Atlas と統合するための公開キー インフラストラクチャが必要です。
- Atlas Kubernetes Operator から Atlas へのアクセスを構成するには、次の公開 API キー、プライベート API キー、および組織 ID 情報が必要です。 - Atlas Kubernetes Operator で新しい Atlasプロジェクトを作成する場合は、 組織へのプログラムによるアクセスの付与 。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。 - 重要- API キーには、 Organization Project Creator以上の組織ロールを割り当てる必要があります。 
- 既存の Atlasプロジェクトを操作する場合は、 プロジェクトからプロジェクト アクセスを追加 します。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。 - 重要- Project Ownerプロジェクト ロールに API キーを割り当てる必要があります。 
 - 詳細については、「 Atlas へのアクセスの設定 」を参照してください。 
- cert-manager または create_X509 を使用して X. 証明書を生成します。 .go509スクリプト。 
証明書マネージャーによる X.509 証明書の生成
証明書マネージャー を使用して X.509 証明書を生成するには、次の手順を実行します。
証明書マネージャーをインストールします。
cert-manager をインストールするには、cert-manager のインストール ドキュメント を参照してください。
Issuerを作成します。
証明書マネージャー Issuer を作成するには、証明書マネージャーの構成ドキュメント を参照してください。
詳細については、の例を参照してください。
証明書を作成します。
証明書を作成するには、cert-manager の使用ドキュメント を参照してください。
詳細については、の例を参照してください。
カスタム スクリプトによる X.509 証明書の生成
create_X.509.go を使用して X.509 証明書を生成するにはスクリプト、次の手順を実行します。
カスタム スクリプトを実行します。
create_X.509.go を実行しますスクリプト:
go run scripts/create_x509.go --path={pem-file-path} 
例:
go run scripts/create_x509.go --path=tmp/x509/ 
証明書をシークレットに追加します。
シークレット に証明書を追加するには、次のコマンドを実行します。
kubectl create secret generic {secret-name} --from-file={pem-file-directory} 
kubectl label secret {secret-name} atlas.mongodb.com/type=credentials 
例:
kubectl create secret generic my-x509-cert --from-file=./tmp/x509/cert.pem 
kubectl label secret my-x509-cert atlas.mongodb.com/type=credentials 
手順
証明書を使用するようにプロジェクトを構成します。
AtlasProjectカスタム リソース の パラメータ内で spec.x509CertRef.nameシークレット を指定します。
例:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata:   name: my-project spec:   name: Test Project   projectIpAccessList:     - ipAddress: "192.0.2.15"       comment: "IP address for Application Server A"     - cidrBlock: "203.0.113.0/24"       comment: "CIDR block for Application Servers B - D"   x509CertRef:     name: my-x509-cert EOF 
X.509 認証を使用するデータベースユーザーを追加します。
AtlasDatabaseUserカスタム リソースのx509Typeパラメータを指定します。
このパラメーターは以下を受け入れます。
| なし | X.509 認証を使用しないユーザー。 | 
| MANAGED | Atlas が管理する X.509 を使用するユーザー。 
 | 
| CUSTOMER | 自己管理型 X.509 を使用するユーザー。この  
 | 
APIから利用できる構成パラメータの詳細については、 Atlasデータベースユーザー API を参照してください。
例:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDatabaseUser metadata:   name: my-database-user spec:   username: CN=my-x509-authenticated-user,OU=organizationalunit,O=organization   databaseName: "\$external"   x509Type: "CUSTOMER"   roles:     - roleName: "readWriteAnyDatabase"       databaseName: "admin"   projectRef:     name: my-project EOF