Secrets Manager シークレットの概要
Secrets Manager では、シークレットは、シークレット情報、シークレット値、およびシークレットに関するメタデータで構成されます。シークレット値には、文字列またはバイナリを使用できます。
複数の文字列値をシークレットに保存するには、キーと値のペアを使用した JSON テキスト文字列を使用することをお勧めします。次に例を示します。
{ "host" : "ProdServer-01.databases.example.com", "port" : "8888", "username" : "administrator", "password" : "EXAMPLE-PASSWORD", "dbname" : "MyDatabase", "engine" : "mysql" }
データベースシークレットで自動ローテーションを有効にするには、シークレットに正しい JSON 構造でデータベースの接続情報が含まれている必要があります。詳しくは、「AWS Secrets Manager シークレットの JSON 構造 」 を参照してください。
メタデータ
シークレットのメタデータには以下が含まれます。
-
次の形式の Amazon リソースネーム (ARN)
arn:aws:secretsmanager:<Region>:<AccountId>:secret:SecretName-6RandomCharactersSecrets Manager は、シークレット ARN が確実に一意であるようにするのに役立つよう、シークレット名の末尾に 6 つのランダムな文字を含めます。元のシークレットが削除され、同じ名前で新しいシークレットが作成された場合、これらの文字により 2 つのシークレット ARN は異なったものとなります。ARN が異なるため、古いシークレットにアクセスできるユーザーであっても、新しいシークレットへのアクセスを自動的に取得するわけではありません。
-
シークレットの名前、説明、リソースポリシー、タグ
-
Secrets Manager がシークレット値を暗号化したり復号したりするために使用する AWS KMS key である暗号化キーの ARN Secrets Manager はシークレットテキストを常に暗号化された形式で保存し、転送中のシークレットを暗号化します。AWS Secrets Manager のシークレット暗号化と復号 を参照してください。
-
シークレットをローテーションする方法に関する情報 (ローテーションを設定した場合) AWS Secrets Managerシークレットのローテーション を参照してください。
Secrets Manager は、IAM アクセス許可ポリシーを使用して、認証されたユーザーのみがシークレットにアクセスまたは変更できるようにします。AWS Secrets Manager の認証とアクセスコントロール を参照してください。
シークレットには、暗号化されたシークレット値のコピーを保持している複数のバージョンがあります。シークレットの値を変更するか、シークレットをローテーションすると、Secrets Manager は新しいバージョンを作成します。シークレットバージョン を参照してください。
シークレットをレプリケートすることによって、シークレットを複数の AWS リージョン で使用できます。シークレットをレプリケートする場合、元のシークレットをコピーするか、レプリカシークレットと呼ばれるプライマリシークレットを作成します。レプリカシークレットは、プライマリシークレットにリンクされたままになっています。リージョン間で AWS Secrets Manager シークレットをレプリケートする を参照してください。
AWS Secrets Manager でシークレットを管理する を参照してください。
シークレットバージョン
シークレットには、暗号化されたシークレット値のコピーを保持している複数のバージョンがあります。シークレットの値を変更するか、シークレットをローテーションすると、Secrets Manager は新しいバージョンを作成します。
Secrets Manager は、シークレットの履歴をバージョン順には保存しません。代わりに、以下の 3 つの特定のバージョンにラベルを付け、追跡します。
現在のバージョン –
AWSCURRENT以前のバージョン –
AWSPREVIOUS保留中のバージョン (ローテーション中) –
AWSPENDING
シークレットには常に、AWSCURRENT というラベルが付いたバージョンがあり、シークレット値を取得する際は、そのバージョンがデフォルトで Secrets Manager から返されます。
また、AWS CLI の update-secret-version-stage を呼び出し、バージョンに独自のラベルを付けることもできます。シークレットには、最大 20 個のラベルをアタッチできます。シークレットの 2 つのバージョンで同じステージングラベルを持つことはできません。各バージョンには、複数のラベル付けることが可能です。
ラベル付きのバージョンであれば、Secrets Manager により削除されることはありませんが、ラベルのないバージョンは非推奨と見なされます。非推奨のバージョンの数が 100 を超えた場合、Secrets Manager はそれらを削除します。ただし、Secrets Manager は 24 時間以内に作成されたバージョンは削除しません。
次の図に、AWS のラベルとカスタマーのラベルが付けられたバージョンを持つシークレットを示します。ラベルのないバージョンは非推奨と見なされ、将来のある時点で Secrets Manager によって削除されます。