アクティブディレクトリを使用する際のベストプラクティス - FSx for ONTAP

アクティブディレクトリを使用する際のベストプラクティス

Amazon FSx for NetApp ONTAP SVM をセルフマネージド Microsoft アクティブディレクトリに接続させる際に考慮するべき提案事項やガイドラインについていくつか説明します。これらはベストプラクティスとして推奨されていますが、必須ではないことに注意してください。

Amazon FSx サービスアカウントにアクセス許可を委任する

Amazon FSx に提供するサービスアカウントは、少なくとも必要最低限のアクセス許可を持つように設定してください。さらに、組織単位 (OU) を他のドメインコントローラーから分離します。

Amazon FSx SVM をドメインに接続させるには、サービスアカウントに委任された許可があることを確認してください。[ドメイン管理者] グループのメンバーには、このタスクを実行するための十分な許可があります。ただし、ベストプラクティスとして、これを実行するために必要最小限の許可のみ付与したサービスアカウントを使用してください。次の手順は、FSx for ONTAP SVM をドメインに接続させるために必要な許可のみを委任する方法を示しています。

この手順は、ディレクトリに接続し、かつ Active Directory User and Computers MMC スナップインがインストールされているマシンで実行します。

Microsoft Active Directory ドメインのサービスアカウントを作成するには
  1. Microsoft Active Directory ドメインのドメイン管理者としてログインしていることを確認してください。

  2. アクティブディレクトリユーザーとコンピュータ MMC スナップインを開きます。

  3. タスクペインで、ドメインノードを展開します。

  4. 変更する OU のコンテキスト (右クリック) メニューを見つけて開き、[Delegate Control] (コントロールの委任) を選択します。

  5. [Delegation of Control Wizard] (コントロールウィザードの委任) ページで、[Next] (次へ) を選択します。

  6. [Selected users and groups] (選択したユーザーとグループ) に特定のユーザーまたは特定のグループを追加するには、[Add] (追加) を選択してから、[Next] (次へ) を選択します。

  7. [Tasks to Delegate] (委任するタスク) ページで、[Create a custom task to delegate] (委任するカスタムタスクの作成) を選択し、[Next (次へ) を選択します。

  8. [Only the following objects in the folder] (フォルダー内の以下のオブジェクトのみ) を選択してから、[Computer objects] (コンピュータオブジェクト) を選択します。

  9. [Create selected objects in this folder] (このフォルダー内に選択したオブジェクトを作成する) を選択してから、[Delete selected objects in this folder] (このフォルダー内の選択したオブジェクトを削除する) を選択します。続いて、[Next] (次へ) を選択します。

  10. [これらのアクセス許可を表示] で、[一般][プロパティ固有] が選択されていることを確認します。

  11. [Permissions] (アクセス許可) を使用する場合、以下を選択します。

    • Reset Password] (パスワードのリセット

    • Read and write Account Restriction] (読み取りおよび書き込み、アカウントの制限

    • Validated write to DNS host name] (DNS ホスト名への書き込みの検証

    • Validated write to service principal name] (サービスプリンシパル名への書き込みの検証

    • [msDS-SupportedEncryptionTypes の書き込み]

  12. [Next] (次へ) を選択し、[Finish] (完了) を選択します。

  13. アクティブディレクトリユーザーとコンピュータ MMC スナップインを閉じます。

重要

SVM が作成された後に Amazon FSx が OU で作成するコンピュータオブジェクトを移動しないでください。移動した場合、SVM が誤設定される原因となります。

Amazon FSx でアクティブディレクトリ設定を最新の状態に保つ

Amazon FSx SVM の中断されない可用性を確保するには、セルフマネージド AD 設定を変更する際、SVM のセルフマネージドアクティブディレクトリ(AD) の設定を更新してください。

例えば、AD が時間ベースのパスワードリセットポリシーを使用しているとします。この場合、パスワードがリセットされたらすぐに、Amazon FSx でサービスアカウントのパスワードを更新してください。これを行うには、Amazon FSx コンソール、Amazon FSx API、または AWS CLI を使用します。同様に、アクティブディレクトリドメインの DNS サーバーの IP アドレスが変更された場合、変更が発生したらすぐに DNS サーバーの IP アドレスを Amazon FSx で更新します。

更新されたセルフマネージド AD 設定に問題がある場合、SVM の状態は [Misconfigured] (誤設定) に変わります。この状態では、コンソール、API、CLI の SVM 説明の横にエラーメッセージと推奨アクションが表示されます。SVM の AD 設定に問題が発生した場合は、設定プロパティに推奨された是正処置を必ず実行してください。問題が解決した場合は、SVM の状態が [Created] (作成済み) に変わっていることを確認します。

詳細については、「AWS マネジメントコンソール、AWS CLI、API を使用して既存の SVM Active Directory 設定を更新する」および「ONTAP CLI を使用してアクティブディレクトリの設定を変更する」を参照してください。

セキュリティグループを使用して VPC 内のトラフィックを制限する

仮想プライベートクラウド (VPC) のネットワークトラフィックを制限するために、VPC に最小特権のプリンシパルを実装できます。言い換えると、許可を必要最低限に制限することができます。これを行うには、セキュリティグループルールを使用します。詳細については、「Amazon VPC セキュリティグループ」を参照してください。

ファイルシステムのネットワークインターフェイス用のアウトバウンドセキュリティグループルールの作成

セキュリティを強化するには、アウトバウンドトラフィックルールを使用したセキュリティグループの設定を検討してください。これらのルールは、セルフマネージド AD ドメインコントローラー、あるいはサブネットまたはセキュリティグループ内へのアウトバウンドトラフィックのみを許可する必要があります。このセキュリティグループを Amazon FSx ファイルシステムの Elastic Network Interface に関連付けられた VPC に適用します。詳細についてはAmazon VPC によるファイルシステムアクセスコントロールを参照してください。

AWS Secrets Manager を使用した Active Directory 資格情報の格納

AWS Secrets Managerを使用して、Microsoft Active Directory ドメイン参加サービスアカウントの認証情報を安全に保存および管理できます。この方法により、機密性の高い資格情報をアプリケーションコードまたは構成ファイルにプレーンテキストで格納する必要がなくなり、セキュリティ体制が強化されます。

シークレットへのアクセスを管理するように IAM ポリシーを設定し、パスワードの自動ローテーションポリシーを設定することもできます。

ステップ 1: KMS キーを作成する

Secrets Manager で Active Directory 認証情報を暗号化および復号するための KMS キーを作成します。

キーを作成するには
注記

暗号化キーには、新しいキーを作成します。AWSデフォルトの KMS キーは使用しないでください。Active Directory に結合する SVM を含むリージョンと同じリージョンに AWS KMS key を作成してください。

  1. https://console.aws.amazon.com/kms で AWS KMS コンソールを開きます。

  2. [Create key] (キーの作成) を選択します。

  3. [キーの種類] として、[対称] を選択します。

  4. [キーの使用方法] として、[暗号化と復号化] を選択します。

  5. 詳細オプションについては、以下の操作を実行します:

    1. [キーマテリアルのオリジン] として、[KMS] を選択します。

    2. [リージョナリティ] として、[単一リージョンキー] を選択し、[次へ] を選択します。

  6. [次へ] を選択します。

  7. [エイリアス] に、KMS キーの名前を指定します。

  8. (オプション) [説明] に、KMS キーの説明を入力します。

  9. (オプション) タグで、KMS キーのタグを指定し、次へを選択します。

  10. (オプション) キー管理者には、このキーを管理する権限を持つ IAM ユーザーとロールを指定します。

  11. [キーの削除] で、[キー管理者にこのキーの削除を許可する] のボックスをオンのままにして、[次へ] を選択します。

  12. (オプション) [キーユーザー] には、暗号化オペレーションでこのキーを使用する権限を持つ IAM ユーザーとロールを指定します。[次へ] を選択します。

  13. [キーポリシー] で、[編集] を選択し、ポリシー [ステートメント] に以下を含めて、Amazon FSx が KMS キーを使用できるようにし、[次へ] を選択します。us-west-2 をファイルシステムがデプロイされている AWS リージョン に、123456789012 を AWS アカウント ID に置き換えてください。

    { "Sid": "Allow FSx to use the KMS key", "Version": "2012-10-17", "Effect": "Allow", "Principal": { "Service": "fsx.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key:*", "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:*", "kms:ViaService": "secretsmanager.us-west-2.amazonaws.com", "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:fsx:us-west-2:123456789012:file-system/*" } } }
  14. [Finish] を選択してください。

注記

特定のシークレットとファイルシステムをターゲットにするように Resource および aws:SourceArn フィールドを変更することで、より詳細なアクセスコントロールを設定できます。

ステップ 2: AWS Secrets Manager シークレットを作成する

シークレットを作成する
  1. Secrets Manager のコンソール (https://console.aws.amazon.com/secretsmanager/) を開きます。

  2. [Store a new secret] (新しいシークレットを保存する) を選択します。

  3. [Secret type] (シークレットタイプ) で、[Other type of secret] (他の種類のシークレット) を選択します。

  4. キーと値おペアの場合は、次の手順を実行して 2 つのキーを追加します:

    1. 最初のキーには、CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME と入力します。

    2. 最初のキーの値には、AD ユーザーのユーザー名 (ドメインプレフィックスなし) のみを入力します。

    3. 2 番目のキーとして、CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD と入力します。

    4. 2 番目のキーの値には、ドメインの AD ユーザー用に作成したパスワードを入力します。

  5. [暗号化キー] の入力では、前のステップで作成した KMS キーの ARN を入力し、[次へ] をクリックします。

  6. [シークレット名] として、後でシークレットを見つけやすい、わかりやすい名前を入力します。

  7. (オプション) [説明] として、シークレット名の説明を入力します。

  8. リソース権限については、編集を選択します。

    アクセス許可ポリシーに以下のポリシーを追加して、Amazon FSx にシークレットの使用を許可し、[次へ] を選択します。us-west-2 をファイルシステムがデプロイされている AWS リージョン に、123456789012 を AWS アカウント ID に置き換えてください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "fsx.amazonaws.com" }, "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:us-west-2:123456789012:secret:*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:fsx:us-west-2:123456789012:file-system/*" } } } ] }
  9. (オプション) 認証情報を自動的にローテーションするように Secrets Manager を設定できます。[次へ] を選択します。

  10. [Finish] を選択してください。

ステップ 1: KMS キーを作成する

Secrets Manager で Active Directory 認証情報を暗号化および復号するための KMS キーを作成します。

KMS キーを作成するには、AWS CLIコマンドキーを作成するを使用します。

このコマンドで、--policy パラメータを設定して、KMS キーのアクセス許可を定義するキーポリシーを指定します。ポリシーには以下の内容を含める必要があります:

  • Amazon FSx のサービスプリンシパル。これは、fsx.amazonaws.com です。

  • 必要な KMS アクション: kms:Decrypt および kms:DescribeKey

  • AWS リージョン および アカウントのリソース ARN パターン。

  • キーの使用を制限する条件キー:

    • kms:ViaService リクエストが Secrets Manager を介して送信されるようにします。

    • アカウントに制限する aws:SourceAccount

    • 特定の Amazon FSx ファイルシステムに制限する aws:SourceArn

以下の例では、Amazon FSx がキーを復号化およびキー説明オペレーションに使用できるようにするポリシーを使用して、対称暗号化 KMS キーを作成します。コマンドは AWS アカウント ID とリージョンを自動的に取得し、これらの値を使用してキーポリシーを設定して、Amazon FSx、Secrets Manager、KMS キー間の適切なアクセスコントロールを確保します。AWS CLI 環境が Active Directory に参加する SVM と同じリージョンにあることを確認します。

# Set region and get Account ID REGION=${AWS_REGION:-$(aws configure get region)} ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text) # Create Key KMS_KEY_ARN=$(aws kms create-key --policy "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"Enable IAM User Permissions\", \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::$ACCOUNT_ID:root\" }, \"Action\": \"kms:*\", \"Resource\": \"*\" }, { \"Sid\": \"Allow FSx to use the KMS key\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"fsx.amazonaws.com\" }, \"Action\": [ \"kms:Decrypt\", \"kms:DescribeKey\" ], \"Resource\": \"*\", \"Condition\": { \"StringEquals\": { \"kms:ViaService\": \"secretsmanager.$REGION.amazonaws.com\", \"aws:SourceAccount\": \"$ACCOUNT_ID\" }, \"ArnLike\": { \"aws:SourceArn\": \"arn:aws:fsx:$REGION:$ACCOUNT_ID:file-system/*\" } } } ] }" --query 'KeyMetadata.Arn' --output text) echo "KMS Key ARN: $KMS_KEY_ARN"
注記

特定のシークレットとファイルシステムをターゲットにするように Resource および aws:SourceArn フィールドを変更することで、より詳細なアクセスコントロールを設定できます。

ステップ 2: AWS Secrets Manager シークレットを作成する

Amazon FSx がアクティブディレクトリにアクセスするためのシークレットを作成するには、AWS CLIコマンド create-secret を使用し、次のパラメータを設定します:

  • --name: シークレットの識別子。

  • --description: シークレットの目的の説明。

  • --kms-key-id: 保管中のシークレットを暗号化するためにステップ 1 で作成した KMS キーの ARN。

  • --secret-string: AD 認証情報を次の形式で含む JSON 文字列:

    • CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME: ドメインプレフィックスを含まない AD サービスアカウントのユーザー名 (svc-fsxなど) 。CORP\svc-fsxなどのドメインプレフィックスを指定しないでください。

    • CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD: AD サービスアカウントのパスワード

  • --region: SVM が作成される AWS リージョン。AWS_REGION が設定されていない場合、既定では構成済みのリージョンが使用されます。

シークレットを作成したら、put-resource-policy コマンドを使用してリソースポリシーをアタッチし、以下のパラメータを設定します:

  • --secret-id: ポリシーをアタッチするシークレットの名前または ARN。次の例では、FSxSecret--secret-id として使用します。

  • --region: シークレットと同じAWS リージョン 。

  • --resource-policy: シークレットへのアクセス許可を Amazon FSx に付与する JSON ポリシードキュメント。ポリシーには以下の内容を含める必要があります:

    • Amazon FSx のサービスプリンシパル。これは、fsx.amazonaws.com です。

    • 必要な Secrets Manager アクション: secretsmanager:GetSecretValue および secretsmanager:DescribeSecret

    • AWS リージョン および アカウントのリソース ARN パターン。

    • アクセスを制限する以下の条件キー:

      • アカウントに制限する aws:SourceAccount

      • 特定の Amazon FSx ファイルシステムに制限する aws:SourceArn

次の例では、必要な形式でシークレットを作成し、Amazon FSx にシークレットの使用を許可するリソースポリシーをアタッチします。この例では、AWS アカウント ID とリージョンを自動的に取得し、Amazon FSx とシークレット間の適切なアクセスコントロールを確保するために、これらの値を使用してリソースポリシーを設定します。

KMS_KEY_ARNステップ 1 で作成したキーの ARN に置き換え、CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAMECUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD を Active Directory サービス アカウントの認証情報に置き換えてください。さらに、Active Directory に参加する SVM と同じリージョンに AWS CLI 環境が設定されていることを確認します。

# Set region and get account ID REGION=${AWS_REGION:-$(aws configure get region)} ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text) # Replace with your KMS key ARN from Step 1 KMS_KEY_ARN="arn:aws:kms:us-east-2:123456789012:key/1234542f-d114-555b-9ade-fec3c9200d8e" # Replace with your Active Directory credentials AD_USERNAME="Your_Username" AD_PASSWORD="Your_Password" # Create the secret SECRET_ARN=$(aws secretsmanager create-secret \ --name "FSxSecret" \ --description "Secret for FSx access" \ --kms-key-id "$KMS_KEY_ARN" \ --secret-string "{\"CUSTOMER_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"$AD_USERNAME\",\"CUSTOMER_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"$AD_PASSWORD\"}" \ --region "$REGION" \ --query 'ARN' \ --output text) echo "Secret created with ARN: $SECRET_ARN" # Attach the resource policy with proper formatting aws secretsmanager put-resource-policy \ --secret-id "FSxSecret" \ --region "$REGION" \ --resource-policy "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"fsx.amazonaws.com\" }, \"Action\": [ \"secretsmanager:GetSecretValue\", \"secretsmanager:DescribeSecret\" ], \"Resource\": \"$SECRET_ARN\", \"Condition\": { \"StringEquals\": { \"aws:SourceAccount\": \"$ACCOUNT_ID\" }, \"ArnLike\": { \"aws:SourceArn\": \"arn:aws:fsx:$REGION:$ACCOUNT_ID:file-system/*\" } } } ] }" echo "Resource policy attached successfully"
注記

特定のシークレットとファイルシステムをターゲットにするように Resource および aws:SourceArn フィールドを変更することで、より詳細なアクセスコントロールを設定できます。