統合クラウドプロバイダー統合を設定する
DataAtlas Data FederationAmazon Web ServicesFederation や 保管時の暗号化 を含む一部の Atlas 機能は、 Amazon Web Services IAM ロール で認証されます。AtlasAmazon Web ServicesAtlas がAmazon Web Servicesサービスにアクセスする場合、 IAM ロール を想定します。
Project Owner
ロールがある場合は、Atlas Administration API または Atlas UI で使用する Atlas アカウントの想定された IAM ロールを設定できます。 Atlasは、 Amazon Web Servicesの統合アクセスのみをサポートしています。
Atlas Kubernetes Operatorを使用して、Amazon Web Services カスタム リソース の IAM AtlasProject
ロールの統合アクセスを設定できます。
重要
Atlas Kubernetes OperatorAtlas Kubernetes Operator を 独立した CRD モデル で動作させる場合、 パラメータを使用してAmazonAmazon Web Services Web Services IAM認証を設定することはできません。atlasProject
Amazon Web ServicesAtlasプロジェクトのAmazonAtlas Web Services IAM認証を直接構成するには、「 aws-iam-認証 」を参照してください。
前提条件
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 へのアクセスの設定 」を参照してください。
手順
spec.cloudProviderIntegrations
フィールドをAtlasProject
カスタムリソースに追加します。
AtlasProject
カスタムspec.cloudProviderIntegrations.iamAssumedRoleArn
リソース の パラメータ内に空の値プレースホルダーを指定します。AtlasProject
カスタムAWS
spec.cloudProviderIntegrations.providerName
リソース の パラメータ内で を指定します。
例:
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" cloudProviderIntegrations: - providerName: "AWS" iamAssumedRoleArn: "" EOF
重要
AtlasProject
カスタム リソースに追加のアクセス ロールを追加する前に、空の値プレースホルダーのロールを構成する手順全体を完了します。
プロジェクトのatlasAWSAccountArn
とatlasAssumedRoleExternalId
を取得します。
コマンドを実行して
atlasAWSAccountArn
を取得します。これは次のステップで必要です。kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAWSAccountArn.type}' arn:aws:iam::198765432109:root コマンドを実行して
atlasAssumedRoleExternalId
を取得します。これは次のステップで必要です。kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAssumedRoleExternalId.type}' 1a234b56-c789-0d12-345e-67f89012345a
Amazon WebAmazon Web Services Services IAM ロールの信頼ポリシーを変更します。
統合アクセス用に既存のIAMロールを使用することも、新しいIAMロールを作成することもできます。
IAM ロールの信頼ポリシーを変更しますAmazon Web Services 次のカスタム信頼ポリシーを使用します。強調表示された行を、前の手順で取得した値に置き換えます。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] }
Amazon Web ServicesIAM ロールの作成 次のカスタム信頼ポリシーを使用します。強調表示された行を、前の手順で取得した値に置き換えます。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"<atlasAWSAccountArn>" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "sts:ExternalId":"<atlasAssumedRoleExternalId>" } } } ] }
Atlas Kubernetes Operator を使用して、IAM ロールのアクセスを認証します。
カスタム リソース のspec.cloudProviderIntegrations.iamAssumedRoleArn
Amazon Web Servicesパラメータ内の空の値プレースホルダーを、前の手順のAtlasProject
ARN に 置き換え ます。
例:
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" cloudProviderIntegrations: - providerName: "AWS" iamAssumedRoleArn: "arn:aws:iam::123456789012:role/aws-service-role/support.amazonaws.com/myRole" EOF
cloudProviderIntegrations
のステータスを確認します。
ステータスを取得するには、 コマンドを実行します。
kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations}' READY
のステータスを確認します。ステータスが
CREATED
の場合、 Atlasはロールを作成しましたが、 Amazon Web Services内で承認されていません。ステータスが
EMPTY_ARN
の場合、Atlas はロールを作成しましたが、spec.cloudProviderIntegrations.iamAssumedRoleArn
は指定されていません。ステータスが
READY
の場合、 Atlasはロールを作成し、ユーザーがAmazon Web Services内でそれを承認しています。