(cdk + boto3): 在 CDK 应用程序中使用 boto3

lon*_*ony 0 boto3 aws-cdk

我使用ENV=<enviornment name> cdk synth --profile <PROFILE_NAME> --all- 现在我想在我的 CDK 应用程序中创建 SSM 秘密参数来针对不同的环境运行 CDK。这应该只在脚手架期间发生,但需要 boto3,因为没有 CloudFormation 等效项。如何将 CDK 身份验证与 boto3 一起重复使用?我使用 CDK 和 boto3 进行 Python 开发,并使用 MFA。有任何想法吗?

#1 试用 - 使用缓存的凭据

无法工作,因为 CDK 未缓存凭据:(

我遇到了一些使用 boto3 检索缓存凭据的方法。我仍然需要与 CDK 一起使用的配置文件,否则我会收到错误消息botocore.exceptions.NoCredentialsError: Unable to locate credentials。有人知道如何获取代码中使用的 AWS CDK 配置文件吗?也许是解决问题的第一步。

# By default the cache path is ~/.aws/boto/cache
cli_cache = os.path.join(os.path.expanduser("~"), ".aws/cli/cache")

# Construct botocore session with cache
session = botocore.session.get_session()
session.get_component("credential_provider").get_provider(
    "assume-role"
).cache = credentials.JSONFileCache(cli_cache)

# Create boto3 client from session
return boto3.Session(botocore_session=session)
Run Code Online (Sandbox Code Playgroud)

小智 5

我建议研究自定义资源,这是一种在 CDK 内部调用 AWS api(甚至执行任何代码)的方法。