シークレットの削除 - AWS Secrets Manager

シークレットの削除

シークレットが持つ重要な特性から、AWS Secrets Manager では、シークレットの削除を故意に困難にしています。Secrets Manager は、シークレットをすぐには削除しません。Secrets Manager は、シークレットをすぐにアクセス不能にし、最短で 7 日間の復旧期間が経過した後に削除されるようスケジュールを設定します。ウインドウの復旧期間が終了するまで、以前に削除したシークレットを復旧することができます。削除対象としてマークしたシークレットに対しては料金は発生しません。

プライマリシークレットが他のリージョンにレプリケートされている場合、プライマリシークレットを削除することはできません。最初にレプリカを削除してから、プライマリシークレットを削除します。レプリカを削除すると、すぐに削除されます。

シークレットのバージョンを直接削除することはできません。代わりに、AWS CLI または AWS SDK を使ってそのバージョンからすべてのステージングラベルを削除します。これにより、そのバージョンは非推奨とマークされ、Secrets Manager はバックグラウンドでバージョンを自動的に削除できるようになります。

アプリケーションでシークレットがまだ使用されているかどうかがわからない場合は、復旧期間中にシークレットにアクセスしようとしたときに警告する Amazon CloudWatch アラームを作成します。詳しくは、削除予定のシークレットのモニタリング を参照してください。

シークレットを削除するには、secretsmanager:ListSecretssecretsmanager:DeleteSecret のアクセス許可が必要です。

シークレットを削除するには (コンソール)

  1. Secrets Manager のコンソール (https://console.aws.amazon.com/secretsmanager/) を開きます。

  2. シークレットのリストで、削除するシークレットを選択します。

  3. [Secrets details] (シークレットの詳細) セクションで、[Actions] (アクション) を選択し、[Delete secret] (シークレットの削除) を選択します。

  4. [Disable secret and schedule deletion] (シークレットの無効化と削除のスケジュール) ダイアログボックスの、[Waiting period] (待機期間) に、永続的に削除するまでの待機日数を入力します。Secrets Manager は DeletionDate というフィールドをアタッチし、現在の日付と時刻に、復旧期間として指定した日数を加えたものを設定します。

  5. [Schedule deletion] (削除をスケジュールする) を選択します。

削除済みのシークレットを表示するには

  1. Secrets Manager コンソール (https://console.aws.amazon.com/secretsmanager/) を開きます。

  2. [Secrets] (シークレット) ページで、[Preferences] (設定)( )を選択します。

  3. [Preferences] (設定) ダイアログボックスで、[Show disabled secrets](無効なシークレットの表示) を選択し、[Save] (保存) を選択します。

レプリカシークレットを削除する

  1. Secrets Manager コンソール (https://console.aws.amazon.com/secretsmanager/を開く。

  2. プライマリシークレットを選択します。

  3. [Replicate Secret] (シークレットのレプリケーション) セクションで、レプリカのシークレットを選択します。

  4. [Actions] (アクション) メニューから [Delete Replica] (レプリカの削除) を選択します。

AWS CLI

シークレットを削除するときは、delete-secret アクションを使用します。シークレットのバージョンを削除するときは、update-secret-version-stage アクションを使用してすべてのステージングラベルを削除します。これで、Secrets Manager はシークレットのバージョンをバックグラウンドで削除できます。削除するバージョンのバージョン ID を確認するときは、ListSecretVersionIds を使用します。

レプリカを削除するには、remove-regions-from-replicationaction.

次の例では、MyTestDatabase という名前のシークレットを削除対象としてマークし、14 日間の復旧期間後に削除するよう、スケジュールを設定します。DeletionDate フィールドに指定された任意の日時に、Secrets Manager はシークレットを完全に削除します。

$ aws secretsmanager delete-secret --secret-id development/MyTestDatabase --recovery-window-in-days 14 { "ARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase", "DeletionDate": 1510089380.309 }

次の例では、復旧期間なしでシークレットを直ちに削除します。DeletionDate レスポンスフィールドには、将来の時刻ではなく現在の日付および時刻が表示されます。このシークレットは、復元できません。

$ aws secretsmanager delete-secret --secret-id development/MyTestDatabase --force-delete-without-recovery { "ARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase", "DeletionDate": 1508750180.309 }

次の例では、レプリカシークレットを削除します。

$ aws secretsmanager remove-regions-from-replication --secret-id development/MyTestDatabase --remove-replica-regions us-east-1

次の例では、MyTestDatabase という名前のシークレットのバージョンから、AWSPREVIOUS ステージングラベルを削除します。

$ aws secretsmanager update-secret-version-stage \ --secret-id development/MyTestDatabase \ --remove-from-version-id EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE --version-stage AWSPREVIOUS { "ARN": "arn:aws:secretsmanager:us-east-2:111122223333:secret:development/MyTestDatabase-AbCdEf", "Name": "development/MyTestDatabase" }

AWS SDK

シークレットを削除するには、DeleteSecret コマンドを使用します。シークレットのバージョンを削除するには、UpdateSecretVersionStage コマンドを使用します。レプリカを削除するには、StopReplicationToReplica コマンドを使用します。詳しくは、AWS SDK を参照してください。