ストレージロケーション認証情報の保護 - AWS DataSync

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ストレージロケーション認証情報の保護

DataSync は、 ロケーションを使用して、オンプレミス、他のクラウド、または にあるストレージリソースにアクセスします AWS。一部のロケーションタイプでは、ストレージシステムで認証するために、アクセスキーとシークレットキー、ユーザー名とパスワードなどの認証情報を指定する必要があります。認証に認証情報を必要とする DataSync の場所を作成する場合、次のいずれかのオプションを選択して、認証情報のシークレットの保存方法を制御できます。

  • デフォルトキーで暗号化されたサービスマネージドシークレット AWS Secrets Manager を使用して、シークレットを に保存します。

  • 管理する AWS KMS キーで暗号化されたサービスマネージドシークレット AWS Secrets Manager を使用して、シークレットを に保存します。

  • 作成して管理するシークレットとキー AWS Secrets Manager を使用して、シークレットを に保存します。DataSync は、指定した IAM ロールを使用してこのシークレットにアクセスします。

いずれの場合も、Secrets Manager シークレットはアカウントに保存されるため、DataSync サービスに関係なく、必要に応じてシークレットを更新できます。DataSync の外部で作成したシークレットの使用に対してのみ課金されます。DataSync によって作成および管理されるシークレットには、プレフィックス がありますaws-datasync

デフォルトキーで暗号化されたサービスマネージドシークレットの使用

DataSync の場所を作成するときは、シークレット文字列を指定するだけです。DataSync は、指定したシークレットを保存 AWS Secrets Manager するためのシークレットリソースを に作成し、アカウントのデフォルトの Secrets Manager KMS キーを使用してシークレットを暗号化します。Secrets Manager でシークレット値を直接変更するか、DataSync コンソール AWS CLI、または SDK を使用して場所を更新できます。ロケーションリソースを削除するか、カスタムシークレットを使用するように更新すると、DataSync はシークレットリソースを自動的に削除します。

注記

Secrets Manager でシークレットリソースを作成、変更、削除するには、DataSync に適切なアクセス許可が必要です。詳細については、AWS DataSync の マネージドポリシー」を参照してください。

カスタム AWS KMS キーで暗号化されたサービスマネージドシークレットの使用

DataSync の場所を作成するときは、キーの AWS KMS シークレットと ARN を指定します。DataSync は、指定したシークレットを保存 AWS Secrets Manager するためのシークレットリソースを に自動的に作成し、 AWS KMS キーを使用して暗号化します。Secrets Manager でシークレット値を直接変更するか、DataSync コンソール AWS CLI、または SDK を使用して場所を更新できます。ロケーションリソースを削除するか、カスタムシークレットを使用するように更新すると、DataSync はシークレットリソースを自動的に削除します。

注記

AWS KMS キーは、 ENCRYPT_DECRYPTキータイプで対称暗号化を使用する必要があります。詳細については、「 AWS Secrets Manager ユーザーガイド」の AWS Key Management Service 「キーの選択」を参照してください。

Secrets Manager でシークレットリソースを作成、変更、削除するには、DataSync に適切なアクセス許可が必要です。詳細については、「AWS マネージドポリシーAWSDataSyncFullAccess」を参照してください。

正しい DataSync 管理ポリシーの使用に加えて、次のアクセス許可も必要です。

{ "Sid": "DataSyncKmsPermissions", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "your-kms-key-arn", "Condition": { "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com" } } }

your-kms-key-arn を KMS キー ARN に置き換えます。

シークレット値を取得および復号するために、DataSync はサービスリンクロール (SLR) を使用して AWS KMS キーにアクセスします。DataSync が KMS キーを使用できるようにするには、キーのポリシーステートメントに以下を追加します。

{ "Sid": "Allow DataSync to use the key for decryption", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountid:role/aws-service-role/datasync.amazonaws.com/AWSServiceRoleForDataSync" }, "Action": "kms:Decrypt", "Resource": "*" }

accountid を AWS アカウント ID に置き換えます。

管理するシークレットの使用

DataSync の場所を作成する前に、 でシークレットを作成します AWS Secrets Manager。シークレットの値は、シークレット文字列自体をプレーンテキストでのみ含める必要があります。DataSync の場所を作成するときは、シークレットの ARN とDataSync がシークレットとシークレットの暗号化に使用される AWS KMS キーの両方にアクセスするために使用する IAM ロールを指定します。適切なアクセス許可を持つ IAM ロールを作成するには、次の手順を実行します。

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左側のナビゲーションペインの [アクセス管理] で、[ロール] を選択し、[ロールの作成] を選択します。

  3. 信頼されたエンティティの選択ページで、信頼されたエンティティタイプでサービスを選択しますAWS

  4. ユースケースでは、ドロップダウンリストから DataSync を選択します。[次へ] を選択します。

  5. [アクセス許可を追加] ページで [次へ] を選択してください。ロールの名前を入力し、ロールの作成を選択します。

  6. [ロール] ページで、作成したロールを検索し、その名前を選択します。

  7. ロールの詳細ページで、アクセス許可タブを選択します。アクセス許可を追加を選択し、インラインポリシーを作成します

  8. JSON タブを選択し、ポリシーエディタに次のアクセス許可を追加します。

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "your-secret-arn" } ] }

    your-secret-arn を Secrets Manager シークレットの ARN に置き換えます。

  9. [次へ] を選択します。ポリシーの名前を入力し、ポリシーの作成を選択します。

  10. (推奨) サービス間の混乱による代理問題の発生を防ぐには、次の操作を行います。

    1. ロールの詳細ページで、信頼関係タブを選択します。[信頼ポリシーを編集] を選択します。

    2. aws:SourceArnaws:SourceAccount グローバル条件コンテキストキーを含む次の例で信頼ポリシーを更新します。

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "datasync.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "StringLike": { "aws:SourceArn": "arn:aws:datasync:region:account-id:*" } } } ] }
    3. [ポリシーの更新] を選択してください。

このロールは、ロケーションの作成時に指定できます。シークレットが暗号化にカスタマーマネージド AWS KMS キーを使用している場合は、前の手順で作成したロールからのアクセスを許可するようにキーのポリシーも更新する必要があります。ポリシーを更新するには、 AWS KMS キーのポリシーステートメントに以下を追加します。

{ "Sid": "Allow DataSync use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam accountid:role/your-role-name” }, "Action": "kms:Decrypt", "Resource": "*" }

accountid を AWS アカウント ID に置き換え、your-role-name を前の手順で作成した IAM ロールの名前に置き換えます。

注記

Secrets Manager にシークレットを保存すると、 AWS アカウント に料金が発生します。料金については、「AWS Secrets Manager 料金表」を参照してください。