gpt4 book ai didi

aws-secrets-manager - AWS Secret 无法转换为键名和值对

转载 作者:行者123 更新时间:2023-12-01 12:05:26 26 4
gpt4 key购买 nike

我有一个 python 脚本,它在 AWS 中创建一些访问 key 并将它们存储在 secret 管理器中。

但是,当我存储 key 时,我收到一条错误消息:

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

secret 像这样存储在 secret 管理器中(混淆了 secret key ):
[{'Access Key': 'AKIA5AODVC64THTZNML7'}, {'Secret Key': 'SecretSecretsecretSecretSecretSecretSecr'}]

我的脚本使用这些行来创建 secret :
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}])`

如何将访问/ secret key 转换为 secret 管理器足够理解的格式以转换为 key /值对?

最佳答案

首先,您可以将 AWS Access Key 和 Secret Key 存储在 AWS Secret Manager 中,但我强烈不建议使用 .但我仍然可以提供一个解决方案来轻松做到这一点:

  • 手动将您的 secret 值放入 json 或使用 创建一个pysecret .

  • from pysecret import AWSSecret

    aws_profile = "my_aws_profile"
    aws = AWSSecret(profile_name=aws_profile)

    secret_id = "my-example-secret"
    secret_data = {
    "iam_user_1": {
    "access_key": "AAAAAAAAAAAAAAAAAAAAA",
    "secret_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    "iam_user_2": {
    "access_key": "BBBBBBBBBBBBBBBBBBBBB",
    "secret_key": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
    }
    }
    aws.deploy_secret(name=secret_id, secret_data=secret_data) # or you can pass kms_key_id if you created a custom kms key
  • 在 lambda 函数或任何 Python 代码中读取您的 secret 值 .

  • aws = AWSSecret(profile_name=aws_profile) # in lambda code, don't need ``profile_name=aws_profile``

    access_key = aws.get_secret_value(secret_id="my-example-secret", key="iam_user_1.access_key") # AAAAAAAAAAAAAAAAAAAAA
    secret_key = aws.get_secret_value(secret_id="my-example-secret", key="iam_user_1.secret_key") # XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    access_key = aws.get_secret_value(secret_id="my-example-secret", key="iam_user_1.access_key") # BBBBBBBBBBBBBBBBBBBBB
    secret_key = aws.get_secret_value(secret_id="my-example-secret", key="iam_user_1.secret_key") # YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

    我创建了一个名为 pysecret 的开源库,这里是 AWS Secret Manager 集成的文档: https://github.com/MacHu-GWU/pysecret-project#aws-key-management-service-and-secret-manager-integration






    第二

    当您想要创建 AWS 访问 key 对时,请考虑谁将使用它,人还是机器。如果是机器,请使用 IAM 角色而不是 IAM 用户。如果是人类,则人类应负责安全存储它,而不是 AWS Secret Manager。

    希望这能回答你的问题。

    关于aws-secrets-manager - AWS Secret 无法转换为键名和值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58042594/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com