

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

# に SFTP サーバーホストキーを保存する AWS Secrets Manager
<a name="server-host-key-storage"></a>

Transfer Family がホストキーマテリアルを管理する代わりに、SFTP 対応サーバーのホストキーを AWS Secrets Manager (Secrets Manager) のシークレットに保存できます。Secrets Manager ストレージを使用すると、Transfer Family はホストキーを独自の AWS Key Management Service (AWS KMS) キーで暗号化できるシークレットに保存します。

ホストキーマテリアルを取得し、サーバーと 間で同じホストキーを再利用する場合は、Secrets Manager ストレージを選択します AWS リージョン。また、 AWS KMS 管理するキーを使用してホストキーマテリアルを暗号化する場合や、Secrets Manager でホストキーへのアクセスの範囲を指定して監査する場合は、Secrets Manager ストレージを選択することもできます。Secrets Manager ストレージを使用するには、次のセクションで説明するように`SECRETS_MANAGER`、ストレージタイプを に設定します。

## ホストキーストレージタイプを設定する
<a name="server-host-key-storage-configure"></a>

ストレージタイプは、サーバーを作成するとき、またはホストキーをインポートまたは更新するときに設定します。 AWS マネジメントコンソール、、 AWS CLIまたは AWS API を使用できます。コンソールでは AWS Transfer Family 、新しいサーバーはデフォルトで AWS Secrets Manager ストレージになります。 AWS CLI と AWS API では、 を設定しない場合、新しいサーバーはデフォルトで`SERVICE_MANAGED`ストレージになります`HostKeyStorageType`。Transfer Family は、ホストキーを指定しない場合にホストキーを生成します。
+ [CreateServer](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateServer) API オペレーションを使用してサーバーを作成する場合は、 `HostKeyStorageType`パラメータを `SERVICE_MANAGED`または に設定します`SECRETS_MANAGER`。
+ [ImportHostKey](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ImportHostKey) または [UpdateHostKey](https://docs.aws.amazon.com/transfer/latest/APIReference/API_UpdateHostKey) API オペレーションを使用してホストキーをインポートまたは更新する場合は、 `StorageType`パラメータを `SERVICE_MANAGED`または に設定します`SECRETS_MANAGER`。

カスタマーマネージドキーを使用して Secrets Manager シークレットを暗号化するには、ホストキーをインポートまたは更新するときに、オプションの `KmsKey`パラメータを AWS KMS キーの Amazon リソースネーム (ARN) に設定します。キーを指定しない場合、Transfer Family は Secrets Manager の AWS マネージドキーを使用します。Secrets Manager ストレージを既に使用しているホストキーのキーを変更するには、新しい で UpdateHostKey を呼び出し`KmsKey`、Transfer Family は新しいキーのシークレットを再暗号化します。カスタマーマネージドキーを使用するには、そのキーポリシーも更新する必要があります。詳細については、「[カスタマーマネージドキーへのアクセスを許可する](#server-host-key-storage-kms)」を参照してください。

**注記**  
を `StorageType`に設定して UpdateHostKey を呼び出す場合`SECRETS_MANAGER`、ホストキーがすでに Secrets Manager ストレージを使用している場合でも、IAM ID には アクセス`transfer:ExportHostKey`許可が必要です。 `transfer:ExportHostKey`は API オペレーションにマッピングされないアクセス許可のみのアクションです。  
既存のホストキーのストレージタイプは、2026 年 10 月 14 日以降にホストキーをインポートした`SECRETS_MANAGER`場合にのみ、 から `SERVICE_MANAGED`に変更できます。古いホストキーを Secrets Manager ストレージに移動するには、 AWS サポート に連絡して例外をリクエストしてください。リクエストに AWS アカウント ID を含めます。

Secrets Manager ストレージを初めて使用すると、Transfer Family はアカウントに AWSServiceRoleForTransfer サービスにリンクされたロールを作成します。IAM ID には、この呼び出しに対する `iam:CreateServiceLinkedRole` アクセス許可が必要です。詳細については、「[のサービスにリンクされたロールの使用 AWS Transfer Family](using-service-linked-roles.md)」を参照してください。

[DescribeHostKey](https://docs.aws.amazon.com/transfer/latest/APIReference/API_DescribeHostKey) および [ListHostKeys](https://docs.aws.amazon.com/transfer/latest/APIReference/API_ListHostKeys) API オペレーションは、各ホストキー`StorageType`の を報告します。Secrets Manager ストレージを使用するホストキーの場合、レスポンスにはキーマテリアルを保持する Secrets Manager シークレット`SecretId`の も含まれます。

## Transfer Family が Secrets Manager シークレットを管理する方法
<a name="server-host-key-storage-slr"></a>

Secrets Manager ストレージを使用すると、Transfer Family は `transfer!` プレフィックスで始まる名前でアカウントにシークレットを作成します。Transfer Family は、AWSServiceRoleForTransfer サービスにリンクされたロールを使用してシークレットを読み取り、受信接続にホストキーを提供します。このサービスにリンクされたロールの詳細については、「[のサービスにリンクされたロールの使用 AWS Transfer Family](using-service-linked-roles.md)」を参照してください。

**注記**  
シークレットはマネージドシークレットです。 AWS Secrets Manager コンソールで確認できますが、Transfer Family はそのライフサイクルを制御するため、手動で変更または削除しないことをお勧めします。AWSServiceRoleForTransfer サービスにリンクされたロールには、Transfer Family がホストキーに関連付けられなくなった孤立したシークレットを最終的にクリーンアップできるようにするアクセス許可が含まれています。詳細については、[AWS Secrets Manager 「他の AWS のサービスによって管理されるシークレット](https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html)」を参照してください。

## Secrets Manager シークレットの操作
<a name="server-host-key-storage-manage"></a>

次のリストは、Transfer Family がホストキー用に作成する Secrets Manager シークレットでできることとできないことについて説明しています。
+ *シークレットの検索* – Transfer Family は、シークレットに`transfer!`プレフィックスを付けます。Secrets Manager コンソールでシークレットのスコープを設定したりフィルタリングしたりしやすくするために、Transfer Family は owning-service タグ `aws:transfer:owningHostKeyArn`に加えてタグ `aws:transfer:owningServerArn`と を適用します`aws:secretsmanager:owningService=transfer`。
+ *ホストキーの変更またはローテーション* – Transfer Family API または Secrets Manager コンソールからホストキー値を変更することはできません。また、Transfer Family はこれらのシークレットに対して Secrets Manager 自動ローテーションを使用しません。ホストキーをローテーションするには、新しいホストキーをインポートし、古いホストキーを削除します。詳細については、「[サーバーのホストキーをローテーションする](server-host-key-rotate.md)」を参照してください。
+ *タグの追加* – シークレットに独自のタグを追加できます。
+ *暗号化キーの変更* – `KmsKey`パラメータ`UpdateHostKey`を使用して を呼び出します。Transfer Family は、新しいキーでシークレットを再暗号化します。詳細については、「[ホストキーストレージタイプを設定する](#server-host-key-storage-configure)」を参照してください。
+ *シークレットの削除* – ホストキーを削除するには、 `DeleteHostKey` API オペレーションを使用します。ホストキーまたはそのサーバーを削除すると、Transfer Family はシークレットの削除をスケジュールします。詳細については、「[サーバーのホストキーを削除する](server-host-key-delete.md)」を参照してください。

**重要**  
このシークレットを手動で削除しないことを強くお勧めします。シークレットを削除すると、Transfer Family がホストキーを読み取れなくなり、SFTP 対応サーバーが中断されます。同様に、サービスにリンクされたロールのシークレットまたはその AWS KMS キーへのアクセスを削除すると、サーバーへの新しい接続は失敗します。ホストキーに対するオペレーションは結果整合性があります。

## カスタマーマネージドキーへのアクセスを許可する
<a name="server-host-key-storage-kms"></a>

カスタマーマネージドキーを使用して Secrets Manager シークレットを暗号化する場合、キーポリシーは Transfer Family サービスにリンクされたロールが を呼び出すことを許可する必要があります`kms:Decrypt`。サービスにリンクされたロールの マネージドポリシーは を許可しないため`kms:Decrypt`、このキーポリシーステートメントがないと、Transfer Family はホストキーマテリアルを読み取って受信接続に供給できません。

次のキーポリシーステートメントの例では、このアクセスを許可します。条件は、名前が で始まるシークレットに対して、Secrets Manager が Transfer Family に代わって行う呼び出しに許可を制限します`transfer!`。{{111122223333}} を AWS アカウント ID に、{{us-east-1}} を に置き換えます AWS リージョン。リージョンが 以外のパーティションにある場合は`aws`、 をパーティションの ARN プレフィックス`arn:aws`に置き換えます。

```
{
  "Sid": "Enable Transfer SLR to access",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::{{111122223333}}:role/aws-service-role/transfer.amazonaws.com/AWSServiceRoleForTransfer"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": "secretsmanager.{{us-east-1}}.amazonaws.com"
    },
    "StringLike": {
      "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:transfer!*"
    }
  }
}
```