These look like magic strings. You should probably use constants. Also add comments explaining what they mean. Finally, you are unpacking a complex data structure without safeguarding yourself against changes to that structure. Any of these index accesses could fail. For dictionaries, you should use `.get` and for lists you should check that the list has items before accessing.

To pull it all together I'd do:
```python
# explanatory comment
DB_SNAPSHOT_RESPONSE_KEY = 'DescribeDBSnapshotsResponse'
#explanatory comment
DB_SNAPSHOT_RESULT_KEY = 'DescribeDBSnapshotsResult'
#explanatory comment
DB_SNAPSHOT_KEY = 'DBSnapshots'
# ... you get the idea

snapshots = rdscon.describe_db_snapshots(srcdb).get(DB_SNAPSHOT_RESPONSE_KEY, {}).get(DB_SNAPSHOT_RESULT_KEY, {}).get(DB_SNAPSHOT_KEY)
if snapshots:
    snapshot = snapshots[-1].get(..., None)

if snapshot is None:
    self.raise_critical_error('...')
```