Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes 演算子
/

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

戻る

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

項目一覧