X.509 クライアント証明書により、データベース ユーザーにプロジェクト内のデータベース配置にアクセスできるようになります。 Atlas Kubernetes Operator を使用して、 AtlasProjectカスタム リソースとAtlasDatabaseUserカスタム リソースの X.509 認証を有効にできます。
Options for X.509 authentication include Atlas-managed X.509 authentication and self-managed X.509 authentication. To learn more about self-managed X.509 authentication, see Set Up Self-Managed X.509 Certificates.
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 へのアクセスの設定 」を参照してください。
Generate an X.509 certificate with cert-manager or the create_X.509.go script.
証明書マネージャーによる X.509 証明書の生成
証明書マネージャー を使用して X.509 証明書を生成するには、次の手順を実行します。
カスタム スクリプトによる 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.x509 CertRef.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
|
To learn more about the configuration parameters available from the API, see the Atlas Database Users 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