X.509 認証を設定する
項目一覧
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_X509 を使用して X.509 証明書を生成します。 .goスクリプトは、次の手順を実行します。
カスタム スクリプトを実行します。
create_X509 を実行します。 .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