

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Conceptos clave de las políticas de acceso de Amazon SNS
<a name="sns-access-policy-language-key-concepts"></a>

En las siguientes secciones, se describen los conceptos que necesita comprender para utilizar el lenguaje de la política de acceso. Se presentan en un orden lógico, con los primeros términos que necesita conocer en la parte superior de la lista.

## Permiso
<a name="permissions"></a>

Un *permiso* es el mecanismo por el que se concede o se deniega algún tipo de acceso a un recurso concreto. Los permisos tienen básicamente esta forma: "A tiene/no tiene permiso para ejecutar B en C donde D se aplica". Por ejemplo, *Jane* (A) tiene permiso para *publicar* (B) en *TopicA* (C), siempre y cuando *utilice el protocolo HTTP* (D). Cuando Jane publica en TopicA, el servicio comprueba si Jane tiene permiso y si la solicitud cumple las condiciones establecidas en el permiso.

## Instrucción
<a name="statement"></a>

Una *instrucción* es la descripción formal de un único permiso, escrita en el lenguaje de la política de acceso. Una instrucción se escribe siempre como parte de un documento contenedor más amplio conocido como *política* (consulte el concepto siguiente).

## Política
<a name="policy"></a>

Una *política* es un documento (escrito en el lenguaje de la política de acceso) que actúa como contenedor de una o varias instrucciones. Por ejemplo, una política puede tener dos instrucciones: una que indique que Jane se puede suscribir mediante el protocolo de correo electrónico y otra que afirme que Bob no puede publicar en el Tema A. Tal y como se muestra en la figura siguiente, un escenario equivalente sería tener dos políticas; una que indique que Jane se puede suscribir mediante el protocolo de correo electrónico y otra que indique que Bob no puede publicar en el Tema A.

![\[Compara dos formas de organizar las instrucciones de políticas en Amazon SNS. A la izquierda, una política (Policy A) contiene dos instrucciones. A la derecha, las mismas dos instrucciones se dividen en dos políticas, y cada política contiene una sola instrucción. El diagrama ilustra que estos dos enfoques son equivalentes en cuanto a la forma de definir y aplicar los permisos.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/AccessPolicyLanguage_Statement_and_Policy.gif)


Solo se permiten caracteres ASCII en los documentos de política. Puede utilizar `aws:SourceAccount` y `aws:SourceOwner` solucionar el escenario en el que necesite conectar otros AWS servicios que contengan caracteres ARNs que no sean ASCII. Vea la diferencia entre [`aws:SourceAccount` frente a `aws:SourceOwner`](sns-access-policy-use-cases.md#source-account-versus-source-owner).



## Emisor
<a name="issuer"></a>

El *emisor* es la persona que escribe una política para conceder los permisos para un recurso. El emisor (por definición) es siempre el propietario del recurso. AWS no permite a los usuarios del AWS servicio crear políticas para recursos que no son de su propiedad. Si John es el propietario del recurso, AWS autentica la identidad de John al enviar la política que ha redactado para conceder permisos para ese recurso.

## Principal
<a name="principal"></a>

El *principal* es la persona o las personas que reciben el permiso en la política. El principal es A en la instrucción “A tiene permiso para hacer B en C, donde D se aplica”. En una política puede configurar el principal en "anyone" (es decir, puede especificar un comodín para representar a todas las personas). Puede hacerlo, por ejemplo, si no desea restringir el acceso en función de la identidad real del solicitante, sino de alguna otra característica identificatoria, como la dirección IP del solicitante.

## Action
<a name="action"></a>

La *acción* es la actividad para cuya ejecución se le da permiso al principal. La acción es B en la declaración “A tiene permiso para hacer B a C cuando D sea de aplicación”. Por lo general, la acción es solo la operación de la solicitud a. AWS Por ejemplo, Jane envía una solicitud a Amazon SNS con `Action``=Subscribe`. Puede especificar una o varias acciones en una política.

## Recurso
<a name="resource"></a>

El *recurso* es el objeto al que el principal solicita acceso. El recurso es C en la instrucción “A tiene permiso para hacer B en C, donde D se aplica”.

## Condiciones y claves
<a name="conditions"></a>

Las *condiciones* consisten en cualquier restricción o detalle sobre el permiso. La condición es D en la declaración “A tiene permiso para hacer B a C cuando D sea de aplicación”. La parte de la política que especifica las condiciones puede ser la más detallada y compleja de todas las partes. Las condiciones típicas están relacionadas con los siguientes elementos:
+ Fecha y hora (por ejemplo, la solicitud debe llegar antes de un día determinado).
+ Dirección IP (por ejemplo, la dirección IP del solicitante debe formar parte de un determinado intervalo de CIDR).

Una *clave* es la característica específica que es la base de la restricción del acceso. Por ejemplo, la fecha y la hora de la solicitud.

Las *condiciones* y las *claves* se utilizan conjuntamente para expresar la restricción. La forma más sencilla de entender cómo implementar una restricción es utilizando un ejemplo: si desea restringir un acceso antes del 30 de mayo de 2010, utilice la condición denominada `DateLessThan`. Utiliza la clave llamada `aws:CurrentTime` y la configura en el valor `2010-05-30T00:00:00Z`. AWS define las condiciones y las claves que puede utilizar. El propio AWS servicio (por ejemplo, Amazon SQS o Amazon SNS) también puede definir claves específicas del servicio. Para obtener más información, consulte [Permisos de la API de Amazon SNS: referencia de recursos y acciones](sns-access-policy-language-api-permissions-reference.md).

## Solicitante
<a name="requester"></a>

El *solicitante* es la persona que envía una solicitud a un AWS servicio y solicita acceso a un recurso en particular. El solicitante envía una solicitud a la AWS que, en esencia, dice: «¿Me permitirían ir de B a C cuando proceda D?»

## Evaluación
<a name="evaluation"></a>

La *evaluación* es el proceso que utiliza el AWS servicio para determinar si se debe denegar o permitir una solicitud entrante en función de las políticas aplicables. Para obtener más información acerca de la lógica de evaluación, consulte [Lógica de evaluación](sns-access-policy-language-evaluation-logic.md).

## Efecto
<a name="effect"></a>

El *efecto* es el resultado que desea que devuelva una instrucción de política al evaluarla. Debe especificar este valor cuando escriba las instrucciones de una política, y los valores posibles son *deny (denegar)* y *allow (permitir)*.

Por ejemplo, puede escribir una política que tenga una instrucción que *deniegue* todas las solicitudes que procedan de la Antártida (efecto = denegar, dado que la solicitud utiliza una dirección IP asignada a la Antártida). O bien puede escribir una política que tenga una instrucción que *permita* todas las solicitudes que *no* procedan de la Antártida (efecto = permitir, dado que la solicitud no proviene de la Antártida). Aunque parece que las dos instrucciones hagan lo mismo, en la lógica del lenguaje de la política de acceso, son diferentes. Para obtener más información, consulte [Lógica de evaluación](sns-access-policy-language-evaluation-logic.md).

Aunque solo se pueden especificar dos valores para el efecto, allow (permitir) o deny (denegar), pueden obtenerse tres resultados diferentes en el momento de la evaluación de la política: *denegación predeterminada*, *permitir* o *denegación explícita*. Para obtener más información, consulte los conceptos siguientes y [Lógica de evaluación](sns-access-policy-language-evaluation-logic.md).

## Denegación predeterminada
<a name="Define_SoftDeny"></a>

Una *denegación predeterminada* es el resultado predeterminado de una política a falta de una instrucción de "permitir" o de una denegación explícita. 

## Permitir
<a name="allow"></a>

*Permitir* es el resultado de una instrucción que tenga effect=allow, suponiendo que se cumplan todas las condiciones indicadas. Ejemplo: permitir las solicitudes si se reciben antes de las 13:00 horas del 30 de abril de 2010. Permitir anula todas las denegaciones predeterminadas, aunque nunca una denegación explícita.

## Denegación explícita
<a name="Define_HardDeny"></a>

Una *denegación explícita* es el resultado de una instrucción que tenga effect=deny, suponiendo que se cumplan todas las condiciones indicadas. Ejemplo: denegar todas las solicitudes si proceden de la Antártida. Cualquier solicitud que proceda de la Antártida siempre se denegará, independientemente de lo que cualquier otra política pueda permitir.