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_X..goスクリプトを使用して509 X.509 証明書を生成するには、次の手順を実行します。

1

create_X..goスクリプトを実行します。509

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

spec.x509CertRef.nameAtlasProjectカスタム リソースの パラメータ内でシークレットを指定します。

例:

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 x509Typeusernameを使用するユーザー。この で作成されたユーザーには、 フィールドに 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

戻る

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

項目一覧