4

AWS でいくつかのアクセス キーを作成し、シークレット マネージャーに保存する Python スクリプトがあります。

ただし、キーを保存すると、次のようなエラーが表示されます。

The secret value can't be converted to key name and value pairs

シークレットは次のようにシークレット マネージャーに保存されます (シークレット キーは難読化されています)。

[{'Access Key': 'AKIA5AODVC64THTZNML7'}, {'Secret Key': 'SecretSecretsecretSecretSecretSecretSecr'}]

私のスクリプトはこれらの行を使用してシークレットを作成しています:

secret_name = 'my_secret'
secret_description = 'describing the secret'
kms_key_id = create_kms_key()
key_info = str([{"Access Key":access_key},{"Secret Key":secret_key}])
aws_secret = `secrets_client.create_secret(Name=secret_name,Description=secret_description,KmsKeyId=kms_key_id,SecretString=key_info,Tags=[{'Key': 'Name','Value': user_name}])`

アクセス/シークレットキーを、シークレットマネージャーがキー/値のペアに変換するのに十分理解できる形式にするにはどうすればよいですか?

4

3 に答える 3

2

まず、AWS アクセス キーを Secrets Manager に保存する必要があるかどうかを再検討する必要があります。Secrets Manager の呼び出しに使用される認証情報をどのように取得する予定ですか?

たとえば、一時ロール credsの使用を検討してください。SecretsManager から別の資格情報ペアを取得するために必要な資格情報を使用しないでください。代わりに一時的な資格を取得するために必要な資格を使用してください。

実際の質問では、コンソールでシークレット値を表示しようとしているようです (「シークレット値をキー名と値のペアに変換できません」というエラーが表示されるため)。シークレットの作成に使用した Python コード スニペットは正しく機能しました。このエラーは、コンソールが SecretString をキーと値のペアに解析できない場合に表示されます。SecretString の最上位の obj は配列であるため、これは予想される動作です。

赤色のエラー表示ボックスのすぐ上にある [プレーンテキスト] タブをクリックすると、キーと値のペアへの解析を試みることなく、保存されている SecretString が表示されます。

于 2019-09-24T22:47:18.973 に答える