sh 用于基于RDS IAM的身份验证的MySQL客户端包装器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 用于基于RDS IAM的身份验证的MySQL客户端包装器相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env bash
# Wrapper MySQL Client for IAM Based Authentication for MySQL and Amazon Aurora on RDS
# Read: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html
# Usage: [app] [aws_profile] [rds_endpoint] [rds_mysql_username]
command_exists() {
type "$1" &> /dev/null ;
}
check_required_parameters() {
aws_profile="$1"
rds_hostname="$2"
rds_username="$3"
if ! [[ -n "$aws_profile" && -n "$rds_username" && -n "$rds_username" ]]
then
echo "Error: Missing Parameters"
echo "Expected: $0 aws_profile_name rds_endpoint_name rds_db_username"
echo "Usage: $0 prod dbname.eu-west-1.amazonaws.com dba"
exit 1
fi
}
get_auth_token() {
aws_bin=$(which aws | head -1)
auth_token="$($aws_bin --profile $aws_profile rds generate-db-auth-token --hostname $rds_hostname --port 3306 --username $rds_username )"
}
connect_to_rds() {
mysql_bin=$(which mysql | head -1)
$mysql_bin --host=$rds_hostname --port=3306 --enable-cleartext-plugin --user=$rds_username --password=$auth_token
}
if [ "$1" == "help" ]
then
echo "Help"
echo "Expected: $0 aws_profile_name rds_endpoint_name rds_db_username"
echo "Usage: $0 prod dbname.eu-west-1.amazonaws.com dba_user"
exit 0
fi
if command_exists aws && command_exists mysql
then
check_required_parameters $1 $2 $3
get_auth_token
connect_to_rds
else
echo "Error: Make sure aws-cli and mysql client is installed"
fi
以上是关于sh 用于基于RDS IAM的身份验证的MySQL客户端包装器的主要内容,如果未能解决你的问题,请参考以下文章
使用 IAM 身份验证和 Spring JDBC(DataSource 和 JdbcTemplace)访问 AWS RDS
SQLAlchemy RDS IAM 登录
AWS IAM“身份”和“实体”之间的区别
Elasticsearch npm:传递AWS凭证
使用 Cognito UnAuth 角色时的 IAM 权限问题
有啥方法可以限制 IAM 用户/假定角色在 AWS cognito 中启用未经身份验证的用户身份?