Políticas de permisos para crear, modificar y eliminar recursos en Aurora
En las siguientes secciones, encontrará ejemplos de políticas de permisos para otorgar y limitar el acceso a los recursos:
Permitir a un usuario crear en instancias de base de datos en una cuenta de AWS
A continuación, se muestra el ejemplo de una política que permite que la cuenta con el ID 123456789012
pueda crear instancias de base de datos para su cuenta AWS. La política requiere que el nombre de la nueva instancia de base de datos comience por test
. La nueva instancia de base de datos también debe utilizar el motor de base de datos MySQL y la clase de instancia de base de datos db.t2.micro
. Además, la nueva instancia de base de datos debe usar un grupo de opciones y un grupo de parámetros de base de datos que comience por default
y debe utilizar el grupo de subred default
.
{ "Version": "2012-10-17", "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" } } } ] }
En la política se incluye una sola instrucción que especifica los siguientes permisos para el usuario de:
La política permite a la cuenta crear una instancia de base de datos utilizando la operación CreateDBInstance de la API (esto también se aplica al comando create-db-instance de la AWS CLI y a la AWS Management Console).
El elemento
Resource
especifica que el usuario puede realizar acciones en o con recursos. Puede especificar los recursos mediante un nombre de recurso de Amazon (ARN). Este ARN incluye el nombre del servicio al que pertenece el recurso (rds
), la región AWS (*
indica cualquier región de este ejemplo), el número de cuenta de AWS (123456789012
es el número de cuenta en este ejemplo) y el tipo de recurso. Para obtener más información acerca de la creación de nombres ARN, consulte Nombres de recursos de Amazon (ARN) en Amazon RDS.El elemento
Resource
del ejemplo especifica las siguientes restricciones políticas en los recursos del usuario:El identificador de instancias de bases de datos para la nueva instancia de base de datos debe comenzar por
test
(por ejemplo,testCustomerData1
,test-region2-data
).El grupo de opciones de la nueva instancia de base de datos debe empezar por
default
.El grupo de parámetros de base de datos de la nueva instancia de base de datos debe empezar por
default
.El grupo de subred de la nueva instancia de base de datos debe ser el grupo de subred
default
.
El elemento
Condition
especifica que el motor de base de datos debe ser MySQL, mientras que la clase de instancia de base de datos debe serdb.t2.micro
. El elementoCondition
especifica las condiciones en las que se debe aplicar una política. Puede añadir permisos o restricciones adicionales mediante el elementoCondition
. Para obtener más información acerca de cómo especificar condiciones, consulte Claves de condición de políticas para Aurora. Este ejemplo especifica el estado delrds:DatabaseEngine
y lards:DatabaseClass
. Para obtener más información acerca de los valores de estado válidos parards:DatabaseEngine
, consulte la lista bajo el parámetroEngine
en CreateDBInstance. Para obtener información acerca de los valores de estado válidos parards:DatabaseClass
, consulte Motores de base de datos compatibles para clases de instancia de base de datos.
La política no especifica el elemento Principal
, ya que en una política basada en la identidad no se especifica el elemento principal que obtiene el permiso. Al asociar una política a un usuario, el usuario es la entidad principal implícita. Cuando se asocia una política de permisos a un rol de IAM, la entidad principal identificada en la política de confianza del rol obtiene los permisos.
Para ver una lista de las acciones de Aurora, consulte Acciones definidas por Amazon RDS en la referencia de autorizaciones de servicio.
Permitir que un usuario realice cualquier acción Describe con cualquier recurso de RDS
La siguiente política de permisos concede permisos a un usuario para ejecutar todas las acciones que empiezan por Describe
. Estas acciones muestran información acerca de un recurso de RDS, como una instancia de base de datos. El carácter de comodín (*) en el elemento Resource
indica que las acciones están permitidas para todos los recursos de Amazon Aurora que pertenecen a la cuenta.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRDSDescribe", "Effect": "Allow", "Action": "rds:Describe*", "Resource": "*" } ] }
Permitirle al usuario crear una instancia de base de datos que use los grupos de parámetros de base de datos y de subredes especificados
La política de permisos siguiente otorga permisos para permitir que el usuario solo pueda crear una instancia de base de datos que use el grupo de parámetros de base de datos mydbpg
y el grupo de subredes de base de datos mydbsubnetgroup
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "rds:CreateDBInstance", "Resource": [ "arn:aws:rds:*:*:pg:mydbpg", "arn:aws:rds:*:*:subgrp:mydbsubnetgroup" ] } ] }
Conceda permiso para acciones en un recurso con una etiqueta específica con dos valores diferentes.
Puede utilizar las condiciones de su política basada en la identidad para controlar el acceso a los recursos de Aurora basados en etiquetas. La siguiente política da permiso para aplicar la operación de API CreateDBSnapshot
en instancias de base de datos con la etiqueta stage
establecida en development
o test
.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowAnySnapshotName", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:snapshot:*" }, { "Sid":"AllowDevTestToCreateSnapshot", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }
La siguiente política da permiso para aplicar la operación de API ModifyDBInstance
en instancias de base de datos con la etiqueta stage
establecida en development
o test
.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowChangingParameterOptionSecurityGroups", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource": [ "arn:aws:rds:*:123456789012:pg:*", "arn:aws:rds:*:123456789012:secgrp:*", "arn:aws:rds:*:123456789012:og:*" ] }, { "Sid":"AllowDevTestToModifyInstance", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }
Evitar que un usuario elimine una instancia de base de datos
La siguiente política de permisos concede permisos para impedir que un usuario elimine una instancia de base de datos específica. Por ejemplo, puede servir para impedir la eliminación de instancias de base de datos de producción a cualquier usuario que no sea un administrador.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDelete1", "Effect": "Deny", "Action": "rds:DeleteDBInstance", "Resource": "arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance" } ] }
Denegar todo el acceso a un recurso
Puede denegar explícitamente el acceso a un recurso. Las políticas de denegación tienen prioridad sobre las políticas de permiso. La política siguiente niega explícitamente a un usuario la capacidad de administrar un recurso:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "rds:*", "Resource": "arn:aws:rds:us-east-1:123456789012:db:mydb" } ] }