AWS Secrets Manager VPC エンドポイントの使用 - AWS Secrets Manager

AWS Secrets Manager VPC エンドポイントの使用

VPC と Secrets Manager とのプライベート接続は、インターフェイス VPC エンドポイントを作成すると、確立できます。インターフェイスエンドポイントは、インターネットゲートウェイ、NAT デバイス、VPN 接続、AWS Direct Connect 接続のいずれも必要とせずに Secrets Manager にプライベートにアクセスできるテクノロジーである、AWS PrivateLink を利用します。VPC にあるインスタンスは、Secrets Manager API と通信するときに、パブリック IP アドレスを必要としません。VPC と Secrets Manager 間のトラフィックは、AWS ネットワークから離れません。

各インターフェイスエンドポイントは、サブネット内の 1 つ以上の Elastic Network Interface によって表されます。

詳細については、Amazon VPC ユーザーガイドの「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

Secrets Manager VPC エンドポイントに関する考慮事項

Secrets Manager のインターフェイス VPC エンドポイントを設定するときは、事前に、「Amazon VPC ユーザーガイド」の「インターフェイスエンドポイントのプロパティと制限」をご確認ください。

自動シークレットローテーションでは Lamba 関数が使用され、Lambda 関数は、データベースと Secrets Manager の両方にリクエストを送信します。自動ローテーションをオンにすると、Secrets Manager は、お使いのデータベースと同じ VPC に Lambda 関数を作成します。Lambda ローテーション関数から Secrets Manager へのリクエストが Amazon ネットワークから離れないようにするために、Secrets Manager エンドポイントを同じ VPC 内に作成することが推奨されます。詳細については、「ローテーション関数へのネットワークアクセス」を参照してください。

Secrets Manager は、API アクションの VPC からの呼び出しをすべてサポートしています。

VPC エンドポイントを介したシークレットの使用を監査するときは、AWS CloudTrail ログを使用できます。

指定された VPC または VPC エンドポイントから発信されたものではないリクエストへのアクセスを、拒否する方法については、例: アクセス許可と VPC を参照してください。

Secrets Manager 用のインターフェイス VPC エンドポイントの作成

Secrets Manager 用の VPC エンドポイントを作成するときは、Amazon VPC コンソールまたは AWS Command Line Interface (AWS CLI) を使用しできます。詳細については、Amazon VPC ユーザーガイドインターフェイスエンドポイントの作成を参照してください。

Secrets Manager 用の VPC エンドポイントを作成するには、次のサービス名を使用します。

  • com.amazonaws.region.secretsmanager

エンドポイントのプライベート DNS を有効にすると、リージョンのデフォルト DNS 名 (secretsmanager.us-east-1.amazonaws.com など) を使って Secrets Manager への API リクエストを実行できます。

詳細については、Amazon VPC ユーザーガイドインターフェイスエンドポイントを介したサービスへのアクセスを参照してください。

Secrets Manager 用の VPC エンドポイントの作成

Secrets Manager へのアクセスをコントロールする VPC エンドポイントには、エンドポイントポリシーをアタッチできます。このポリシーでは、以下の情報を指定します。

  • アクションを実行できるプリンシパル。

  • 実行可能なアクション。

  • このアクションを実行できるリソース。

詳細については、Amazon VPC ユーザーガイドの「VPC エンドポイントによるサービスのアクセス制御」を参照してください。

例 特定のアカウントの Secrets Manager エンドポイントへのアクセスを有効にする

次の例では、アカウント 123456789012 のすべてのユーザーとロールにアクセス権を付与します。

{ "Statement": [ { "Sid": "AccessSpecificAccount", "Principal": {"AWS": "123456789012"}, "Action": "secretsmanager:*", "Effect": "Allow", "Resource": "*" } ] }

例 Secrets Manager エンドポイントで単一のシークレットへのアクセスを有効にする

次の例では、指定されたシークレットにのみアクセスを制限します。

{ "Statement": [ { "Principal": "*", "Action": "secretsmanager:*", "Effect": "Allow", "Resource": [ "arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName-a1b2c3" ] } ] }