SecretsManager / Client / describe_secret

describe_secret#

SecretsManager.Client.describe_secret(**kwargs)#

Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager only returns fields that have a value in the response.

Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see Logging Secrets Manager events with CloudTrail.

Required permissions: secretsmanager:DescribeSecret. For more information, see IAM policy actions for Secrets Manager and Authentication and access control in Secrets Manager.

See also: AWS API Documentation

Request Syntax

response = client.describe_secret(
    SecretId='string'
)
Parameters:

SecretId (string) –

[REQUIRED]

The ARN or name of the secret.

For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See Finding a secret from a partial ARN.

Return type:

dict

Returns:

Response Syntax

{
    'ARN': 'string',
    'Name': 'string',
    'Description': 'string',
    'KmsKeyId': 'string',
    'RotationEnabled': True|False,
    'RotationLambdaARN': 'string',
    'RotationRules': {
        'AutomaticallyAfterDays': 123,
        'Duration': 'string',
        'ScheduleExpression': 'string'
    },
    'LastRotatedDate': datetime(2015, 1, 1),
    'LastChangedDate': datetime(2015, 1, 1),
    'LastAccessedDate': datetime(2015, 1, 1),
    'DeletedDate': datetime(2015, 1, 1),
    'NextRotationDate': datetime(2015, 1, 1),
    'Tags': [
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    'VersionIdsToStages': {
        'string': [
            'string',
        ]
    },
    'OwningService': 'string',
    'CreatedDate': datetime(2015, 1, 1),
    'PrimaryRegion': 'string',
    'ReplicationStatus': [
        {
            'Region': 'string',
            'KmsKeyId': 'string',
            'Status': 'InSync'|'Failed'|'InProgress',
            'StatusMessage': 'string',
            'LastAccessedDate': datetime(2015, 1, 1)
        },
    ]
}

Response Structure

  • (dict) –

    • ARN (string) –

      The ARN of the secret.

    • Name (string) –

      The name of the secret.

    • Description (string) –

      The description of the secret.

    • KmsKeyId (string) –

      The key ID or alias ARN of the KMS key that Secrets Manager uses to encrypt the secret value. If the secret is encrypted with the Amazon Web Services managed key aws/secretsmanager, this field is omitted. Secrets created using the console use an KMS key ID.

    • RotationEnabled (boolean) –

      Specifies whether automatic rotation is turned on for this secret.

      To turn on rotation, use RotateSecret. To turn off rotation, use CancelRotateSecret.

    • RotationLambdaARN (string) –

      The ARN of the Lambda function that Secrets Manager invokes to rotate the secret.

    • RotationRules (dict) –

      The rotation schedule and Lambda function for this secret. If the secret previously had rotation turned on, but it is now turned off, this field shows the previous rotation schedule and rotation function. If the secret never had rotation turned on, this field is omitted.

      • AutomaticallyAfterDays (integer) –

        The number of days between rotations of the secret. You can use this value to check that your secret meets your compliance guidelines for how often secrets must be rotated. If you use this field to set the rotation schedule, Secrets Manager calculates the next rotation date based on the previous rotation. Manually updating the secret value by calling PutSecretValue or UpdateSecret is considered a valid rotation.

        In DescribeSecret and ListSecrets, this value is calculated from the rotation schedule after every successful rotation. In RotateSecret, you can set the rotation schedule in RotationRules with AutomaticallyAfterDays or ScheduleExpression, but not both. To set a rotation schedule in hours, use ScheduleExpression.

      • Duration (string) –

        The length of the rotation window in hours, for example 3h for a three hour window. Secrets Manager rotates your secret at any time during this window. The window must not extend into the next rotation window or the next UTC day. The window starts according to the ScheduleExpression. If you don’t specify a Duration, for a ScheduleExpression in hours, the window automatically closes after one hour. For a ScheduleExpression in days, the window automatically closes at the end of the UTC day. For more information, including examples, see Schedule expressions in Secrets Manager rotation in the Secrets Manager Users Guide.

      • ScheduleExpression (string) –

        A cron() or rate() expression that defines the schedule for rotating your secret. Secrets Manager rotation schedules use UTC time zone. Secrets Manager rotates your secret any time during a rotation window.

        Secrets Manager rate() expressions represent the interval in hours or days that you want to rotate your secret, for example rate(12 hours) or rate(10 days). You can rotate a secret as often as every four hours. If you use a rate() expression, the rotation window starts at midnight. For a rate in hours, the default rotation window closes after one hour. For a rate in days, the default rotation window closes at the end of the day. You can set the Duration to change the rotation window. The rotation window must not extend into the next UTC day or into the next rotation window.

        You can use a cron() expression to create a rotation schedule that is more detailed than a rotation interval. For more information, including examples, see Schedule expressions in Secrets Manager rotation in the Secrets Manager Users Guide. For a cron expression that represents a schedule in hours, the default rotation window closes after one hour. For a cron expression that represents a schedule in days, the default rotation window closes at the end of the day. You can set the Duration to change the rotation window. The rotation window must not extend into the next UTC day or into the next rotation window.

    • LastRotatedDate (datetime) –

      The last date and time that Secrets Manager rotated the secret. If the secret isn’t configured for rotation or rotation has been disabled, Secrets Manager returns null.

    • LastChangedDate (datetime) –

      The last date and time that this secret was modified in any way.

    • LastAccessedDate (datetime) –

      The date that the secret was last accessed in the Region. This field is omitted if the secret has never been retrieved in the Region.

    • DeletedDate (datetime) –

      The date the secret is scheduled for deletion. If it is not scheduled for deletion, this field is omitted. When you delete a secret, Secrets Manager requires a recovery window of at least 7 days before deleting the secret. Some time after the deleted date, Secrets Manager deletes the secret, including all of its versions.

      If a secret is scheduled for deletion, then its details, including the encrypted secret value, is not accessible. To cancel a scheduled deletion and restore access to the secret, use RestoreSecret.

    • NextRotationDate (datetime) –

      The next rotation is scheduled to occur on or before this date. If the secret isn’t configured for rotation or rotation has been disabled, Secrets Manager returns null. If rotation fails, Secrets Manager retries the entire rotation process multiple times. If rotation is unsuccessful, this date may be in the past.

    • Tags (list) –

      The list of tags attached to the secret. To add tags to a secret, use TagResource. To remove tags, use UntagResource.

      • (dict) –

        A structure that contains information about a tag.

        • Key (string) –

          The key identifier, or name, of the tag.

        • Value (string) –

          The string value associated with the key of the tag.

    • VersionIdsToStages (dict) –

      A list of the versions of the secret that have staging labels attached. Versions that don’t have staging labels are considered deprecated and Secrets Manager can delete them.

      Secrets Manager uses staging labels to indicate the status of a secret version during rotation. The three staging labels for rotation are:

      • AWSCURRENT, which indicates the current version of the secret.

      • AWSPENDING, which indicates the version of the secret that contains new secret information that will become the next current version when rotation finishes. During rotation, Secrets Manager creates an AWSPENDING version ID before creating the new secret version. To check if a secret version exists, call GetSecretValue.

      • AWSPREVIOUS, which indicates the previous current version of the secret. You can use this as the last known good version.

      For more information about rotation and staging labels, see How rotation works.

      • (string) –

        • (list) –

          • (string) –

    • OwningService (string) –

      The ID of the service that created this secret. For more information, see Secrets managed by other Amazon Web Services services.

    • CreatedDate (datetime) –

      The date the secret was created.

    • PrimaryRegion (string) –

      The Region the secret is in. If a secret is replicated to other Regions, the replicas are listed in ReplicationStatus.

    • ReplicationStatus (list) –

      A list of the replicas of this secret and their status:

      • Failed, which indicates that the replica was not created.

      • InProgress, which indicates that Secrets Manager is in the process of creating the replica.

      • InSync, which indicates that the replica was created.

      • (dict) –

        A replication object consisting of a RegionReplicationStatus object and includes a Region, KMSKeyId, status, and status message.

        • Region (string) –

          The Region where replication occurs.

        • KmsKeyId (string) –

          Can be an ARN, Key ID, or Alias.

        • Status (string) –

          The status can be InProgress, Failed, or InSync.

        • StatusMessage (string) –

          Status message such as “Secret with this name already exists in this region”.

        • LastAccessedDate (datetime) –

          The date that the secret was last accessed in the Region. This field is omitted if the secret has never been retrieved in the Region.

Exceptions

  • SecretsManager.Client.exceptions.ResourceNotFoundException

  • SecretsManager.Client.exceptions.InternalServiceError

  • SecretsManager.Client.exceptions.InvalidParameterException

Examples

The following example shows how to get the details about a secret.

response = client.describe_secret(
    SecretId='MyTestDatabaseSecret',
)

print(response)

Expected Output:

{
    'ARN': 'arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3',
    'Description': 'My test database secret',
    'KmsKeyId': 'arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987KMSKEY1',
    'LastAccessedDate': datetime(2018, 4, 17, 0, 0, 0, 1, 107, 0),
    'LastChangedDate': 1523477145.729,
    'LastRotatedDate': 1525747253.72,
    'Name': 'MyTestDatabaseSecret',
    'RotationEnabled': True,
    'RotationLambdaARN': 'arn:aws:lambda:us-west-2:123456789012:function:MyTestRotationLambda',
    'RotationRules': {
        'AutomaticallyAfterDays': 14,
        'Duration': '2h',
        'ScheduleExpression': 'cron(0 16 1,15 * ? *)',
    },
    'Tags': [
        {
            'Key': 'SecondTag',
            'Value': 'AnotherValue',
        },
        {
            'Key': 'FirstTag',
            'Value': 'SomeValue',
        },
    ],
    'VersionIdsToStages': {
        'EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE': [
            'AWSPREVIOUS',
        ],
        'EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE': [
            'AWSCURRENT',
        ],
    },
    'ResponseMetadata': {
        '...': '...',
    },
}