Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes 演算子
/

X.509 認証を設定する

項目一覧

  • 前提条件
  • 証明書マネージャーによる X.509 証明書の生成
  • カスタム スクリプトによる X.509 証明書の生成
  • 手順
  • 証明書を使用するようにプロジェクトを構成します。
  • X.509 認証を使用するデータベースユーザーを追加します。

X. 509クライアント証明書により、データベースユーザーにプロジェクト内のデータベース配置にアクセスできます。 Atlas Kubernetes Operator を使用して、 AtlasProjectカスタム リソースAtlasDatabaseUserカスタム リソースの X. 509認証を有効にします。

X. 509認証のオプションとして、Atlas が管理する X. 509認証と自己管理型 X. 509認証があります。 自己管理型の X. 509認証について詳しくは、「 自己管理型 X. 509認証の設定 」を参照してください。

X.509 認証を設定するには、次の手順に従います。

  1. X.509 証明書を生成します。

  2. 証明書を使用するようにAtlasProjectカスタム リソースを構成します。

  3. 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 証明書を生成するには 、次の手順を実行します。

1

cert-manager をインストールするには、 cert-manager のインストールに関するドキュメント を参照してください。 。

2

証明書マネージャーIssuer を作成するには、 証明書マネージャーの構成ドキュメント を参照してください。 。

詳細については、 例 を参照してください。

3

証明書を作成するには、 cert Manager の使用ドキュメント を参照してください。 。

詳細については、 例 を参照してください。

create_X509 を使用して X.509 証明書を生成します。 .goスクリプトは、次の手順を実行します。

1

create_X509 を実行します。 .goスクリプト:

go run scripts/create_x509.go --path={pem-file-path}

例:

go run scripts/create_x509.go --path=tmp/x509/
2

シークレット に証明書を追加するには で、次のコマンドを実行します。

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
1

シークレット を指定する 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
2

AtlasDatabaseUserカスタム リソースx509Typeパラメータを指定します。

このパラメーターは以下を受け入れます。

なし
X.509 認証を使用しないユーザー。
MANAGED

Atlas が管理する X.509 を使用するユーザー。

spec.databaseNameパラメータに\$externalを指定する必要があります。

CUSTOMER

自己管理型 X を使用するユーザー。 509 . このx509Typeで作成されたユーザーには、 usernameフィールドに CN(Common Name、共通名)が必要です。 詳しくは、「 RFC2253 」を参照してください。

spec.databaseNameパラメータに\$externalを指定する必要があります。

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

戻る

カスタムデータベースロール