

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

# AWS Secrets Manager マネージド外部シークレットを使用したサードパーティーシークレットの管理
<a name="managed-external-secrets"></a>

マネージド外部シークレットは、 の新しいシークレットタイプ AWS Secrets Manager であり、統合パートナーからの認証情報を保存して自動的に更新できます。この機能により、統合パートナーのシークレットを更新するためのカスタム AWS Lambda 関数を作成および維持する必要がなくなります。オンボーディングされたすべてのパートナーの完全なリストについては、[「 統合パートナー](mes-partners.md)」を参照してください。

でアプリケーションを構築する場合 AWS、多くの場合、ワークロードは API キー、OAuth トークン、認証情報ペアなどの安全な認証情報を介してサードパーティーアプリケーションとやり取りする必要があります。以前は、各アプリケーションに固有の複雑なローテーション Lambda 関数の構築や継続的なメンテナンスなど、これらの認証情報を保護および管理するためのカスタムアプローチを開発する必要がありました。

マネージド外部シークレットは、各パートナーが定義した事前定義された形式でサードパーティーの認証情報を保存するための標準化されたアプローチを提供します。この機能には、シークレットの作成中に有効になる自動ローテーション (デフォルトではコンソール）、シークレット管理ワークフローの完全な透明性とユーザーコントロール、きめ細かなアクセス許可管理、オブザーバビリティ、ガバナンス、コンプライアンス、ディザスタリカバリ、モニタリングコントロールなど、Secrets Manager が提供するフル機能セットが含まれます。

## 主な特徴
<a name="mes-key-features"></a>

マネージド外部シークレットには、サードパーティーの認証情報管理を簡素化するいくつかの主要な機能があります。
+ **Lambda フリーのマネージドローテーション**は、カスタムローテーション関数の作成と管理のオーバーヘッドを排除します。外部 を作成すると、ローテーションが自動的に有効になり、アカウントにデプロイされた Lambda 関数はありません。
+ **事前定義されたシークレット形式**により、シークレットを統合パートナーに適切に関連付け、ローテーションに必要なメタデータを含めることができます。各パートナーは必要な形式を定義します。
+ **統合されたパートナーエコシステム**は、標準化されたオンボーディングプロセスを通じて複数のパートナーをサポートします。パートナーは Secrets Manager と直接統合して、シークレットの作成とマネージドローテーション機能に関するプログラムによるガイダンスを提供します。
+ **完全な監査可能性**は、すべてのローテーションアクティビティ、シークレット値の更新、管理オペレーションの AWS CloudTrail ログ記録を通じて完全な透明性を維持します。

# マネージド外部シークレットパートナー
<a name="mes-partners"></a>

Secrets Manager は、サードパーティーのアプリケーションとネイティブに統合して、パートナーが保持するシークレットをローテーションします。各パートナーは、シークレットのローテーションに必要なメタデータとシークレット値フィールドを定義します。

 シークレット値には、サードパーティークライアントとの接続に必要なフィールドが含まれており、[CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) 呼び出し中に保存されます。ローテーションメタデータは、ローテーション中にシークレットを更新するために使用され、[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しで使用されるフィールドを保持します。これらのフィールドは、統合パートナーによって定義され、マネージドローテーションフローを許可します。

 ローテーションを適切に機能させるには、シークレットライフサイクルを管理するための特定のアクセス許可を Secrets Manager に提供する必要があります。詳細については、[「セキュリティとアクセス許可」を参照してください。](mes-security.md)

以下のトピックでは、シークレットのローテーションに必要な各メタデータフィールドの説明と、シークレットマネージャーのシークレットのローテーションに必要な各フィールドの説明について説明します。


**トピック**  

| 統合パートナー | シークレットのタイプ | 
| --- | --- | 
| Salesforce | [SalesforceClientSecret](mes-partner-salesforce.md) | 
| BigID | [BigIDClientSecret](mes-partner-BigId.md) | 
| Snowflake | [SnowflakeKeyPairAuthentication](mes-partner-Snowflake.md) | 

# Salesforce クライアントシークレット
<a name="mes-partner-salesforce"></a>

## シークレット値フィールド
<a name="w2aac25c11c13b3"></a>

以下は、Secrets Manager シークレットに含める必要があるフィールドです。

```
{
  "consumerKey": "client ID", 
  "consumerSecret": "client secret", 
  "baseUri": "https://domain.my.salesforce.com", 
  "appId": "app ID", 
  "consumerId": "consumer ID"
}
```

consumerKey  
コンシューマーキーは、クライアント ID とも呼ばれ、OAuth 2.0 認証情報の認証情報識別子です。コンシューマーキーは、Salesforce External Client App Manager OAuth 設定から直接取得できます。

consumerSecret  
コンシューマーシークレットは、クライアントシークレットとも呼ばれ、OAuth 2.0 クライアント認証情報フローを使用して認証するためにコンシューマーキーで使用されるプライベートパスワードです。コンシューマーシークレットは、Salesforce External Client App Manager OAuth 設定から直接取得できます。

baseUri  
ベース URI は、Salesforce API を操作するために使用される Salesforce APIs。これは、次の例の形式になります: `https://domainName.my.salesforce.com`。

appId  
アプリケーション ID は、Salesforce External Client Application (ECA) の識別子です。これは、Salesforce OAuth 使用状況エンドポイントを呼び出すことで取得できます。先頭は で`0x`、英数字のみを使用する必要があります。このフィールドは、[Salesforce ローテーションガイド](https://help.salesforce.com/s/articleView?id=xcloud.eca_stage_oauth_credentials.htm&type=5)の external\$1client\$1app\$1identifier を参照します。

consumerId  
コンシューマー ID は、Salesforce External Client Application (ECA) コンシューマーの識別子です。これは、アプリケーション ID エンドポイントで Salesforce OAuth 認証情報を呼び出すことで取得できます。このフィールドは、[Salesforce ローテーションガイド](https://help.salesforce.com/s/articleView?id=xcloud.eca_stage_oauth_credentials.htm&type=5)の consumer\$1id を参照します。

## シークレットメタデータフィールド
<a name="w2aac25c11c13b5"></a>

Salesforce が保持するシークレットをローテーションするために必要なメタデータフィールドを次に示します。

```
{
  "apiVersion": "v65.0",
  "adminSecretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:SalesforceClientSecret"
}
```

apiVersion   
Salesforce API バージョンは、Salesforce 組織の API バージョンです。バージョンは v65.0 以上である必要があります。`vXX.X` `X` が数値である形式である必要があります。

adminSecretArn  
(オプション) 管理者シークレット ARN は、この Salesforce クライアントシークレットのローテーションに使用される管理 OAuth 認証情報を含むシークレットの Amazon リソースネーム (ARN) です。少なくとも、管理者シークレットには、シークレット構造内に consumerKey と consumerSecret の値を含める必要があります。これはオプションのフィールドであり、省略した場合、ローテーション中に Secrets Manager はこのシークレット内の OAuth 認証情報を使用して Salesforce で認証します。

## 使用フロー
<a name="w2aac25c11c13b7"></a>

Salesforce シークレットを に保存しているお客様は AWS Secrets Manager 、同じシークレットに保存されている認証情報を使用してシークレットをローテーションするか、管理者シークレットの認証情報を使用してローテーションするかを選択できます。上記のフィールドと [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) 呼び出しを使用してシークレットを作成できます。 SalesforceClientSecret ローテーション設定は、[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しを使用して設定できます。この呼び出しでは、上記の例のようにメタデータフィールドの指定が必要です - 同じシークレットの認証情報を使用してローテーションを選択した場合は、adminSecretArn フィールドをスキップできます。さらに、お客様は [RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しでロール ARN を指定する必要があります。これにより、シークレットをローテーションするために必要なアクセス許可がサービスに付与されます。アクセス許可ポリシーの例については、[「セキュリティとアクセス許可](mes-security.md)」を参照してください。

個別の認証情報 (管理者シークレットに保存) を使用してシークレットを更新する場合は、コンシューマーシークレットとまったく同じステップ AWS Secrets Manager に従って で管理者シークレットを作成してください。この管理者シークレットの ARN は、コンシューマーシークレットの [RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しのローテーションメタデータで指定する必要があります。

ローテーションロジックは、Salesforce が提供するガイダンスに従います。

# ビッグ ID 更新トークン
<a name="mes-partner-BigId"></a>

## シークレット値フィールド
<a name="w2aac25c11c15b3"></a>

以下は、Secrets Manager シークレットに含める必要があるフィールドです。

```
{
  "hostname": "Host Name",
  "refreshToken": "Refresh Token" 
}
```

hostname  
これは、BigID インスタンスがホストされているホスト名です。インスタンスの完全修飾ドメイン名を入力する必要があります。

refreshToken  
管理 → アクセス管理 → ユーザーの選択 → トークンの生成 → 保存を介して BigID コンソールで生成された JWT ユーザー更新トークン

## 使用フロー
<a name="w2aac25c11c15b5"></a>

上記のフィールドと [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) 呼び出しを使用してシークレットを作成できます。 BigIDClientSecret ローテーション設定は、[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しを使用して設定できます。また、[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しでロール ARN を指定する必要があります。これにより、シークレットをローテーションするために必要なアクセス許可がサービスに付与されます。アクセス許可ポリシーの例については、[「セキュリティとアクセス許可](mes-security.md)」を参照してください。このパートナーでは、ローテーションメタデータフィールドを空のままにできることに注意してください。

# Snowflake キーペア
<a name="mes-partner-Snowflake"></a>

## シークレット値フィールド
<a name="w2aac25c11c17b3"></a>

以下は、Secrets Manager シークレットに含める必要があるフィールドです。

```
{
  "account": "Your Account Identifier",
  "user": "Your user name",
  "privateKey": "Your private Key",
  "publicKey": "Your public Key",
  "passphrase": "Your Passphrase"
}
```

ユーザー  
このキーペア認証に関連付けられた Snowflake ユーザー名。このユーザーは、キーペア認証を受け入れるように Snowflake で設定する必要があり、パブリックキーはこのユーザーのプロファイルに割り当てる必要があります。

アカウント  
接続の確立に使用される Snowflake アカウント識別子。これは Snowflake URL (.snowflakecomputing.com より前の部分) から抽出できます。

privateKey  
認証に使用される PEM 形式の RSA プライベートキー。BEGIN/END マーカーはオプションです。

publicKey  
プライベートキーに対応する PEM 形式のパブリックキー。BEGIN/END マーカーはオプションです。

パスフレーズ  
(オプション) このフィールドは、暗号化されたプライベートキーの復号に使用されるパスフレーズを参照します。

## シークレットメタデータフィールド
<a name="w2aac25c11c17b5"></a>

Snowflake のメタデータフィールドは次のとおりです。

```
{
  "cryptographicAlgorithm": "Your Cryptographic algorithm",
  "encryptPrivateKey": "True/False"
}
```

cryptographicAlgorithm  
(オプション) これは、キー生成に使用されるアルゴリズムを指します。次の 3 つのアルゴリズムを選択できます: `RS256|RS384|RS512` 。このフィールドはオプションで、選択したデフォルトのアルゴリズムは RS256 です。

encryptPrivateKey  
(オプション) このフィールドを使用して、プライベートキーを暗号化するかどうかを選択できます。これはデフォルトでは false です。暗号化のパスフレーズはランダムに生成されます。

## 使用フロー
<a name="w2aac25c11c17b7"></a>

上記のフィールドと SnowflakeKeyPairAuthentication としてシークレットタイプを含むシークレット値を使用して[CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) 呼び出しを使用してシークレットを作成できます。ローテーション設定は、[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しを使用して設定できます。必要に応じて、要件に基づいてシークレットメタデータフィールド (複数可) を指定できます。また、[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) 呼び出しでロール ARN を指定する必要があります。これにより、シークレットをローテーションするために必要なアクセス許可がサービスに付与されます。アクセス許可ポリシーの例については、[「セキュリティとアクセス許可](mes-security.md)」を参照してください。このパートナーでは、ローテーションメタデータフィールドを空のままにできることに注意してください。

# セキュリティおよびアクセス許可
<a name="mes-security"></a>

マネージド外部シークレットでは、サードパーティーアプリケーションアカウントの管理者レベルの権限を と共有する必要はありません AWS。代わりに、ローテーションプロセスでは、指定した認証情報とメタデータを使用して、認証情報の更新と検証のためにサードパーティーアプリケーションへの認可された API コールを行います。

マネージド外部シークレットは、他の Secrets Manager シークレットタイプと同じセキュリティ標準を維持します。シークレット値は、KMS キーを使用して保管中に暗号化され、TLS を使用して転送中に暗号化されます。シークレットへのアクセスは、IAM ポリシーとリソースベースのポリシーによって制御されます。カスタマーマネージドキーを使用してシークレットを暗号化する場合は、ローテーションロールの IAM ポリシーと CMK 信頼ポリシーを更新して、ローテーションを成功させるために必要なアクセス許可を付与する必要があります。

ローテーションを適切に機能させるには、シークレットライフサイクルを管理するための特定のアクセス許可を Secrets Manager に提供する必要があります。これらのアクセス許可は、個々のシークレットに限定し、最小特権の原則に従うことができます。指定したローテーションロールはセットアップ時に検証され、ローテーションオペレーションにのみ使用されます。

シークレットが存在するリージョンの EC2 の [AWS IP 範囲](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ip-ranges.html)のみを許可することで、IP 進入を外部リソースに制限できます。この IP 範囲のリストは変更される可能性があるため、進入ルールを定期的に更新する必要があります。

 AWS Secrets Manager には、Secrets Manager コンソールを使用してシークレットを作成するときにシークレットを管理するために必要なアクセス許可を持つ IAM ポリシーを作成するためのシングルタッチソリューションも用意されています。このロールのアクセス許可は、各リージョンの統合パートナーごとにスコープダウンされます。

**アクセス許可ポリシーの例:**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowRotationAccess",
      "Action": [
        "secretsmanager:DescribeSecret",
        "secretsmanager:GetSecretValue",
        "secretsmanager:PutSecretValue",
        "secretsmanager:UpdateSecretVersionStage"
      ],
      "Resource": "*",
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "secretsmanager:resource/Type": "SalesforceClientSecret"
        }
      }
    },
    {
      "Sid": "AllowPasswordGenerationAccess",
      "Action": [
        "secretsmanager:GetRandomPassword"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
```

注: secretsmanager:resource/Type で使用できるシークレットタイプのリストは、[統合パートナー](mes-partners.md)にあります。

**信頼ポリシーの例:**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "SecretsManagerPrincipalAccess",
      "Effect": "Allow",
      "Principal": {
        "Service": "secretsmanager.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*"
        }
      }
    }
  ]
}
```

# マネージド外部シークレットのモニタリングとトラブルシューティング
<a name="mes-monitor"></a>

マネージド外部シークレットは、 AWS CloudTrail ログと Amazon CloudWatch メトリクスを通じて包括的なモニタリング機能を提供します。すべてのローテーションアクティビティは、成功、失敗、およびプロセス中に発生したエラーに関する詳細情報とともにログに記録されます。

ローテーションワークフローの一般的な問題には、ロールのアクセス許可やシークレット値の誤った設定が含まれます。これらのフィールドを設定しないと、サービスがシークレットにアクセスしたり、統合パートナークライアントに接続してシークレットを更新したりできなくなるため、統合パートナーによって指定された形式でローテーションが失敗する可能性があります。その他の問題としては、ネットワーク接続の問題、認証情報の有効期限切れ、パートナーサービスの可用性などがあります。マネージドローテーションサービスには、信頼性を最大化するための再試行ロジックとエラー処理が含まれています。

Amazon CloudWatch を使用して、ローテーションスケジュール、成功率、パフォーマンスメトリクスをモニタリングできます。[イベントブリッジ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-pattern.html)を介してカスタムアラームを設定して、ローテーションの失敗や注意が必要なその他の問題を警告できます。

# 既存のシークレットの移行
<a name="mes-migrating"></a>

既存のパートナーシークレットをマネージド外部シークレットに移行するオプションがあります。これは [UpdateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecret.html) 呼び出しで実行できます。ガイドで説明されているように、シークレット値とメタデータを更新する必要があります。これらのシークレットにカスタムローテーションロジックがすでに設定されている場合は、まず [CancelRotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CancelRotateSecret.html) 呼び出しを使用してローテーションをキャンセルする必要があります。

# 制約事項と考慮事項
<a name="mes-limitations-and-considerations"></a>

マネージド外部シークレットは、有効期間が 4 時間未満のエフェメラルシークレットをサポートしていません。パブリックキーインフラストラクチャ証明書に関連付けられたシークレットもサポートされていません。

 マネージド外部シークレットは、 をオンボーディングしたパートナーでのみサポートされます AWS Secrets Manager。完全なリストについては、[「 統合パートナー](mes-partners.md)」を参照してください。パートナーがリストに表示されない場合 [にオンボードするように指示する AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/mes-onboarding/secrets-manager-mes-onboarding.html) 

Secrets Manager ローテーションエンジンの外部にあるパートナークライアントサービスから直接シークレット値を更新またはローテーションすると、システム間の同期が切断される可能性があります。Secrets Manager は、手動シークレット値更新のコンソール警告とプログラムによる防止を提供しますが、サードパーティーアプリケーションで直接値を変更することはできます。out-of-band更新後に同期を再確立するには、正しいシークレットを反映するようにシークレット値を更新してから[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html) API を呼び出して、ローテーションが引き続き成功するようにする必要があります。