AWS ローテーション関数の作成に使用できる Lambda テンプレート - AWS Secrets Manager

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

AWS ローテーション関数の作成に使用できる Lambda テンプレート

このセクションでは、AWS のシークレットのための Lambda ローテーション関数を作成するために使用できる AWS Secrets Manager マネージドテンプレートを示します。これらのテンプレートは AWS Serverless Application Repository に関連付けられます。このリポジトリは AWS CloudFormation を使用して、事前設定されたリソースの「スタック」を作成します。この場合、テンプレートによって、Lambda 関数および IAM ロールで構成されるスタックが作成されます。Secrets Manager では、ローテーションが発生したときにこのスタックを使用して、関数を呼び出します。

次のいずれかのテンプレートを使用して Lambda のローテーション関数を作成するには、指定したテンプレートの ARN をコピーして、トピック「回転式 AWS Secrets Manager 他のデータベースやサービスの秘密.」に記載している CLI コマンド内に貼り付けます。

次の各テンプレートは、データベースとローテーション戦略の異なる組み合わせに対して Lambda ローテーション関数を作成します。それぞれの下の最初の箇条書きは、関数によってサポートされているデータベースまたはサービスを示しています。2 番目の箇条書きでは、関数によって実装されるローテーション戦略について説明します。3 番目の箇条書きは、更新されたシークレットの SecretString 値でローテーション関数が見つけると予想される JSON 構造体を示します。

RDS データベース

その他のデータベースおよびサービス

Amazon RDS データベースのテンプレート

RDS MariaDB シングルユーザー

  • 名前: SecretsManagerRDSMariaDBRotationSingleUser

  • サポートされているデータベースまたはサービス: MariaDB (Amazon Relational Database Service) Amazon RDS データベースインスタンスでホストされているデータベース。

  • ローテーション戦略: これは、更新されたシークレットに保存されている認証情報を持つユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。1 つのパスワードを使用してシングルユーザーの AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "mariadb", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>" }
  • ソースコード

RDS MariaDB マスターユーザー

  • 名前: SecretsManagerRDSMariaDBRotationMultiUser

  • サポートされているデータベースまたはサービス: MariaDB データベースインスタンスでホストされているAmazon RDSデータベース。

  • ローテーション戦略: ローテーション中に 2 人のユーザーが、別のシークレットに保存されている別のマスターユーザーの認証情報を使用して入れ替わります。Secrets Manager は、非アクティブユーザーがアクティブユーザーになる前に、非アクティブユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。既存の 2 人のユーザーを切り替えることで AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "mariadb", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>" }
  • ソースコード

RDS MySQL シングルユーザー

  • 名前: SecretsManagerRDSMySQLRotationSingleUser

  • サポートされているデータベースまたはサービス: MySQL (Amazon Relational Database Service) Amazon RDS データベースインスタンスでホストされているデータベース。

  • ローテーション戦略: これは、更新されたシークレットに保存されている認証情報を持つユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。1 つのパスワードを使用してシングルユーザーの AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "mysql", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>" }
  • ソースコード

RDS MySQL 複数ユーザー

  • 名前: SecretsManagerRDSMySQLRotationMultiUser

  • サポートされているデータベースまたはサービス: MySQL データベースインスタンスでホストされているAmazon RDSデータベース。

  • ローテーション戦略: ローテーション中に 2 人のユーザーが、別のシークレットに保存されている別のマスターユーザーの認証情報を使用して入れ替わります。Secrets Manager は、非アクティブユーザーがアクティブユーザーになる前に、非アクティブユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。既存の 2 人のユーザーを切り替えることで AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "mysql", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 3306>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>" }
  • ソースコード

RDS Oracle シングルユーザー

  • 名前: SecretsManagerRDSOracleRotationSingleUser

  • サポートされているデータベースまたはサービス: Amazon Relational Database Service (Amazon RDS) データベースインスタンスでホストされている Oracle データベース。

  • ローテーション戦略: これは、更新されたシークレットに保存されている認証情報を持つユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。1 つのパスワードを使用してシングルユーザーの AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "oracle", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<required: database name>", "port": "<optional: TCP port number. If not specified, defaults to 1521>" }
  • ソースコード

RDS Oracle マスターユーザー

  • 名前: SecretsManagerRDSOracleRotationMultiUser

  • サポートされているデータベースまたはサービス: Amazon RDS データベースインスタンスでホストされている Oracle データベース。

  • ローテーション戦略: ローテーション中に 2 人のユーザーが、別のシークレットに保存されている別のマスターユーザーの認証情報を使用して入れ替わります。Secrets Manager は、非アクティブユーザーがアクティブユーザーになる前に、非アクティブユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。既存の 2 人のユーザーを切り替えることで AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "oracle", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<required: database name>", "port": "<optional: TCP port number. If not specified, defaults to 1521>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>" }
  • ソースコード

RDS PostgreSQL シングルユーザー

  • 名前: SecretsManagerRDSPostgreSQLRotationSingleUser

  • サポートされているデータベースまたはサービス: PostgreSQL データベースインスタンスでホストされているAmazon RDSデータベース。

  • ローテーション戦略: これは、更新されたシークレットに保存されている認証情報を持つユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。1 つのパスワードを使用してシングルユーザーの AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "postgres", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'postgres'>", "port": "<optional: TCP port number. If not specified, defaults to 5432>" }
  • ソースコード

RDS PostgreSQL マスターユーザー

  • 名前: SecretsManagerRDSPostgreSQLRotationMultiUser

  • サポートされているデータベースまたはサービス: PostgreSQL データベースインスタンスでホストされているAmazon RDSデータベース。

  • ローテーション戦略: ローテーション中に 2 人のユーザーが、別のシークレットに保存されている別のマスターユーザーの認証情報を使用して入れ替わります。Secrets Manager は、非アクティブユーザーがアクティブユーザーになる前に、非アクティブユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。既存の 2 人のユーザーを切り替えることで AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "postgres", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'postgres'>", "port": "<optional: TCP port number. If not specified, defaults to 5432>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>" }
  • ソースコード

RDS Microsoft SQLServer シングルユーザー

  • 名前: SecretsManagerRDSSQLServerRotationSingleUser

  • サポートされているデータベースまたはサービス: SQLServer データベースインスタンスでホストされている Microsoft Amazon RDS データベース。

  • ローテーション戦略: これは、更新されたシークレットに保存されている認証情報を持つユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。1 つのパスワードを使用してシングルユーザーの AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "sqlserver", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'master'>", "port": "<optional: TCP port number. If not specified, defaults to 1433>" }
  • ソースコード

RDS Microsoft SQLServer マスターユーザー

  • 名前: SecretsManagerRDSSQLServerRotationMultiUser

  • サポートされているデータベースまたはサービス: SQLServer データベースインスタンスでホストされている Microsoft Amazon RDS データベース。

  • ローテーション戦略: ローテーション中に 2 人のユーザーが、別のシークレットに保存されている別のマスターユーザーの認証情報を使用して入れ替わります。Secrets Manager は、非アクティブユーザーがアクティブユーザーになる前に、非アクティブユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。既存の 2 人のユーザーを切り替えることで AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "sqlserver", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to 'master'>", "port": "<optional: TCP port number. If not specified, defaults to 1433>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>" }
  • ソースコード

他のデータベースのテンプレート

MongoDB シングルユーザー

  • 名前: SecretsManagerMongoDBRotationSingleUser

  • サポートされているデータベースまたはサービス: MongoDB データベースバージョン 3.2 または 3.4。

  • ローテーション戦略: これは、更新されたシークレットに保存されている認証情報を持つユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。1 つのパスワードを使用してシングルユーザーの AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "mongo", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 27017>" }
  • ソースコード: ソースコード

MongoDB マスターユーザー

  • 名前: SecretsManagerMongoDBRotationMultiUser

  • サポートされているデータベースまたはサービス: MongoDB データベースバージョン 3.2 または 3.4。

  • ローテーション戦略: ローテーション中に 2 人のユーザーが、別のシークレットに保存されている別のマスターユーザーの認証情報を使用して交互に入れ替わります。Secrets Manager は、非アクティブユーザーがアクティブユーザーになる前に、非アクティブユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。既存の 2 人のユーザーを切り替えることで AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "mongo", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 27017>", "masterarn": "<required: the ARN of the master secret used to create 2nd user and change passwords>" }
  • ソースコード

Amazon Redshift シングルユーザー

arn:aws:serverlessrepo:us-east-1:123456789012:applications/SecretsManagerRDSMySQLRotationSingleUser
  • 名前: SecretsManagerRedshiftRotationSingleUser

  • サポートされているデータベースまたはサービス: Amazon Redshift

  • ローテーション戦略: これは、更新されたシークレットに保存されている認証情報を持つユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。1 つのパスワードを使用してシングルユーザーの AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "redshift", "host": "<required: instance host name/resolvable DNS name>", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None>", "port": "<optional: TCP port number. If not specified, defaults to 5439>" }
  • ソースコード

Amazon Redshift プライマリユーザー

  • 名前: SecretsManagerRedshiftRotationMultiUser

  • サポートされているデータベースまたはサービス: Amazon Redshift

  • ローテーション戦略: 2 人のユーザーが、ローテーション中に別のシークレットに保存されている別のプライマリユーザーの認証情報を使用して交互に入れ替わります。 Secrets Manager は、非アクティブユーザーがアクティブユーザーになる前に、非アクティブユーザーのパスワードを変更します。この戦略の詳細については、「」を参照してください。既存の 2 人のユーザーを切り替えることで AWS Secrets Manager シークレットを更新する.

  • 予想されるSecretString構造体:

    { "engine": "redshift", "host": "<required: instance host name/resolvable DNS name", "username": "<required: username>", "password": "<required: password>", "dbname": "<optional: database name. If not specified, defaults to None", "port": "<optional: TCP port number. If not specified, defaults to 5439", "masterarn": "<required: the master secret ARN used to create 2nd user and change passwords" }
  • ソースコード

他のサービスのテンプレート

汎用ローテーション関数テンプレート

  • 名前: SecretsManagerRotationTemplate

  • サポートされているデータベースまたはサービス: なし。必要なサービスを操作するためにコードを指定します。

  • ローテーション戦略: なし。必要なローテーション戦略を実装するためのコードを提供します。独自の関数のカスタマイズの詳細については、「」を参照してください。お客様の Lambda 回転関数.

  • 予想されるSecretString構造: これは、記述されたコードの一部として定義します。

  • ソースコード: ソースコード