Amazonrds-db-access-control
提供:Dev Guides
Amazon RDS-DBアクセス制御
Amazon RDS DBインスタンスにアクセスするには、ユーザーに特定のアクセス許可が必要です。 これは、AWS IAM(IDおよびアクセス管理)を使用して構成されます。 このチュートリアルでは、この構成がどのように行われるかを確認します。
構成には2つの部分が含まれます。
- 認証
- アクセス制御
認証
これには、ユーザー名、パスワードの作成、ユーザーのアクセスキーの生成が含まれます。 アクセスキーの助けを借りて、AWS RDSサービスにプログラムでアクセスすることができます。 SDKおよびCLIツールは、アクセスキーを使用して暗号化してリクエストでサインインします。
IAMロールを使用してユーザーを認証することもできます。 ただし、ロールは特定のユーザーに関連付けられているのではなく、どのユーザーでも一時的にロールを引き受けて必要なタスクを完了することができます。 タスクが終了すると、ロールは取り消され、ユーザーは認証機能を失います。
アクセス制御
ユーザーが認証されると、そのユーザーにアタッチされたポリシーによって、ユーザーが実行できるタスクのタイプが決定されます。 以下は、DBエンジンMySQLのt2.microインスタンスでのRDS DBインスタンスの作成を許可するポリシーの例です。
{
"Version": "2018-09-11",
"Statement": [
{
"Sid": "AllowCreateDBInstanceOnly",
"Effect": "Allow",
"Action": [
"rds:CreateDBInstance"
],
"Resource": [
"arn:aws:rds:*:123456789012:db:test*",
"arn:aws:rds:*:123456789012:og:default*",
"arn:aws:rds:*:123456789012:pg:default*",
"arn:aws:rds:*:123456789012:subgrp:default"
],
"Condition": {
"StringEquals": {
"rds:DatabaseEngine": "mysql",
"rds:DatabaseClass": "db.t2.micro"
}
}
}
]
}
RDSリソースに対するアクション
以下の例では、RDSリソースに対する記述アクションを許可するポリシーがあります。 *記号は、リソースを表すために使用されます。
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AllowRDSDescribe",
"Effect":"Allow",
"Action":"rds:Describe*",
"Resource":"*"
}
]
}
DBインスタンスの削除を許可しない
以下のポリシーは、ユーザーが特定のDBインスタンスを削除することを許可しません。
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"DenyDelete1",
"Effect":"Deny",
"Action":"rds:DeleteDBInstance",
"Resource":"arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance"
}
]
}