De forma predeterminada, los usuarios y roles no tienen permiso para crear, ver ni modificar recursos de AWS AppSync. Tampoco pueden realizar tareas mediante la AWS Management Console, la AWS Command Line Interface (AWS CLI) o la API de AWS. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan. A continuación, el administrador puede añadir las políticas de IAM a roles y los usuarios pueden asumirlos.
Para obtener información acerca de cómo crear una política basada en identidades de IAM mediante el uso de estos documentos de políticas JSON de ejemplo, consulte Creación de políticas de IAM en la Guía del usuario de IAM.
Para obtener más información sobre las acciones y los tipos de recursos definidos por AWS AppSync, incluido el formato de los ARN para cada tipo de recurso, consulte Acciones, recursos y claves de condición para AWS AppSync en la Referencia de autorizaciones de servicio.
Para conocer las prácticas recomendadas para crear y configurar políticas de IAM basadas en la identidad, consulte Prácticas recomendadas sobre políticas de IAM.
Para obtener una lista de las políticas de IAM basadas en la identidad para AppSync AWS, consulte Políticas gestionadas por AWS para AWS AppSync.
Temas
Uso de la consola AWS AppSync
Para acceder a la consola de AWS AppSync, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle enumerar y consultar detalles sobre los recursos de AWS AppSync en su Cuenta de AWS. Si crea una política basada en identidades que sea más restrictiva que el mínimo de permisos necesarios, la consola no funcionará del modo esperado para las entidades (usuarios o roles) que tengan esa política.
No es necesario que conceda permisos mínimos para la consola a los usuarios que solo realizan llamadas a la AWS CLI o a la API de AWS. En su lugar, permite acceso únicamente a las acciones que coincidan con la operación de API que intentan realizar.
Para asegurarse de que los usuarios y roles de IAM puedan seguir utilizando la consola de AWS AppSync, asocie también a las entidades la política administrada por AWS AppSync ConsoleAccess
o ReadOnly
AWS. Para más información, consulte Adición de permisos a un usuario en la Guía del usuario de IAM:
Cómo permitir a los usuarios consultar sus propios permisos
En este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver las políticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluye permisos para llevar a cabo esta acción en la consola o mediante programación con la AWS CLI o la API de AWS.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ViewOwnUserInfo",
"Effect": "Allow",
"Action": [
"iam:GetUserPolicy",
"iam:ListGroupsForUser",
"iam:ListAttachedUserPolicies",
"iam:ListUserPolicies",
"iam:GetUser"
],
"Resource": ["arn:aws:iam::*:user/${aws:username}"]
},
{
"Sid": "NavigateInConsole",
"Effect": "Allow",
"Action": [
"iam:GetGroupPolicy",
"iam:GetPolicyVersion",
"iam:GetPolicy",
"iam:ListAttachedGroupPolicies",
"iam:ListGroupPolicies",
"iam:ListPolicyVersions",
"iam:ListPolicies",
"iam:ListUsers"
],
"Resource": "*"
}
]
}
Acceso a un bucket de Amazon S3
En este ejemplo, desea conceder acceso a un usuario de IAM de su cuenta de AWS a uno de sus buckets de Amazon S3, examplebucket
. También desea permitir al usuario añadir, actualizar o eliminar objetos.
Además de conceder los permisos s3:PutObject
, s3:GetObject
y s3:DeleteObject
al usuario, la política también concede los permisos s3:ListAllMyBuckets
, s3:GetBucketLocation
y s3:ListBucket
. Estos son los permisos adicionales que requiere la consola. Las acciones s3:PutObjectAcl
y s3:GetObjectAcl
también son necesarias para poder copiar, cortar y pegar objetos en la consola. Para ver un tutorial de ejemplo en el que se conceden permisos a los usuarios y se prueban con la consola, consulte Tutorial de ejemplo: uso de las políticas del usuario para controlar el acceso al bucket.
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"ListBucketsInConsole",
"Effect":"Allow",
"Action":[
"s3:ListAllMyBuckets"
],
"Resource":"arn:aws:s3:::*"
},
{
"Sid":"ViewSpecificBucketInfo",
"Effect":"Allow",
"Action":[
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource":"arn:aws:s3:::examplebucket"
},
{
"Sid":"ManageBucketContents",
"Effect":"Allow",
"Action":[
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource":"arn:aws:s3:::examplebucket/*"
}
]
}
Visualización de widgets
de AWS AppSync basados en etiquetas
Puede utilizar las condiciones de su política basada en la identidad para controlar el acceso a los recursos de AWS AppSync basados en etiquetas. En este ejemplo, se muestra cómo crear una política que permita visualizar un widget
. Sin embargo, los permisos solo se conceden si el widget
de la etiqueta Owner
tiene el valor del nombre de usuario de dicho usuario. Esta política también proporciona los permisos necesarios para llevar a cabo esta acción en la consola.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListWidgetsInConsole",
"Effect": "Allow",
"Action": "appsync:ListWidgets",
"Resource": "*"
},
{
"Sid": "ViewWidgetIfOwner",
"Effect": "Allow",
"Action": "appsync:GetWidget",
"Resource": "arn:aws:appsync:*:*:widget/*",
"Condition": {
"StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"}
}
}
]
}
También puede asociar esta política al usuario de IAM en su cuenta. Si un usuario con el nombre richard-roe
intenta visualizar un widget
de AWS AppSync, el widget
se debe etiquetar como Owner=richard-roe
o owner=richard-roe
. De lo contrario, se le deniega el acceso. La clave de la etiqueta de condición Owner
coincide con los nombres de las claves de condición Owner
y owner
porque no distinguen entre mayúsculas y minúsculas. Para obtener más información, consulte Elementos de la política de JSON de IAM: Condición en la Guía del usuario de IAM.