Как переименовать / обновить метку этапа секрета в AWS Secret Manager - Java - PullRequest
1 голос
/ 20 июня 2019

Я храню свои ключи в менеджере ключей aws. Имеет 2 этапа надписей AWSCURRENT и AWSPREVIOUS после поворота

Можем ли мы обновить / переименовать AWSPREVIOUS в TESTJK? Я попробовал приведенный ниже код, я не выдавал ни одной ошибки, даже если он не выполняет то, что ожидал

Что я ожидаю

Переименуйте AWSPREVIOUS в TESTJK и сохраните секретное значение таким, как оно есть

        GetSecretValueRequest getSecretValueRequest = new GetSecretValueRequest().withSecretId(secretKey)
            .withVersionStage("AWSPREVIOUS");
        GetSecretValueResult getSecretValueResult = client.getSecretValue(getSecretValueRequest);

        log.info("jkdata ww {}", getSecretValueResult.getSecretString());
        log.info("verison id{}", getSecretValueResult.getVersionId());

        UpdateSecretVersionStageRequest updateSecretVersionStageRequest = new UpdateSecretVersionStageRequest()
            .withSecretId(secretKey)
            .withMoveToVersionId(getSecretValueResult.getVersionId())
            .withRemoveFromVersionId(getSecretValueResult.getVersionId());
        client.updateSecretVersionStage(updateSecretVersionStageRequest).setName("TESTJK");

Что ожидается:

Он переименует AWSPREVIOUS в TESTJK, поэтому в следующий раз, если я сделаю запрос с AWSPREVIOUS, я получу ошибку, и если я сделаю запрос с TESTJK, я получу секретное значение.

Текущий: я получаю значение для AWSPREVIOUS, но ошибка для TESTJK

com.amazonaws.services.secretsmanager.model.ResourceNotFoundException: Secrets Manager can’t find the specified secret value for staging label: TESTJK (Service: AWSSecretsManager; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: 4c15706e-e1bd-424a-ba03-4914e6523a34)

1 Ответ

1 голос
/ 20 июня 2019

Это потребует двух запросов API.Первый берет идентификатор версии AWSPREVIOUS и присваивает ему 'TESTJK':

GetSecretValueRequest getSecretValueRequest = new GetSecretValueRequest()
.withSecretId(secretKey)
.withVersionStage("AWSPREVIOUS");

GetSecretValueResult getSecretValueResult = client.getSecretValue(getSecretValueRequest);

UpdateSecretVersionStageRequest updateSecretVersionStageRequest = new UpdateSecretVersionStageRequest()
            .withSecretId(secretKey)
            .withVersionStage("TESTJK")
            .withMoveToVersionId(getSecretValueResult.getVersionId())
        client.updateSecretVersionStage(updateSecretVersionStageRequest);

На этом этапе вы можете оставить оба этапа, связанные с одним и тем же идентификатором версии, или удалить этап версии AWSPREVIOUS:

UpdateSecretVersionStageRequest updateSecretVersionStageRequest = new UpdateSecretVersionStageRequest()
            .withSecretId(secretKey)
            .withVersionStage("AWSPREVIOUS")
            .withRemoveFromVersionId(getSecretValueResult.getVersionId())
        client.updateSecretVersionStage(updateSecretVersionStageRequest);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...