Ejemplos de políticas basadas en identidades de AWS CodeArtifact
De forma predeterminada, los usuarios y roles no tienen permiso para crear, ver ni modificar recursos de CodeArtifact. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan.
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 (consola) en la Guía del usuario de IAM.
A fin de obtener más información sobre las acciones y los tipos de recursos definidos por CodeArtifact, incluido el formato de los ARN para cada tipo de recurso, consulte Acciones, recursos y claves de condición para AWS CodeArtifact en la Referencia de autorizaciones de servicio.
Temas
Prácticas recomendadas sobre las políticas
Las políticas basadas en identidades determinan si alguien puede crear, acceder o eliminar los recursos de CodeArtifact de la cuenta. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
-
Comience a utilizar las políticas administradas de AWS y avance hacia permisos de privilegios mínimos. Para empezar a conceder permisos a los usuarios y cargas de trabajo, utilice las políticas administradas de AWS que otorgan permisos para muchos casos de uso comunes. Están disponibles en su Cuenta de AWS. Se recomienda definir políticas administradas por el cliente de AWS específicas para sus casos de uso a fin de reducir aún más los permisos. Con el fin de obtener más información, consulte las políticas administradas por AWS o las políticas administradas por AWS para funciones de tarea en la Guía de usuario de IAM.
-
Aplique permisos de privilegio mínimo: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como permisos de privilegios mínimos. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte Políticas y permisos en IAM en la Guía del usuario de IAM.
-
Utilice condiciones en las políticas de IAM para restringir aún más el acceso: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puede usar condiciones para conceder acceso a acciones de servicios si se emplean a través de un Servicio de AWS determinado como, por ejemplo, CloudFormation. 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.
-
Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte Validación de políticas con el Analizador de acceso de IAM en la Guía del usuario de IAM.
-
Solicite la autenticación multifactor (MFA): si se encuentra en una situación en la que necesite usuarios raíz o de IAM en su Cuenta de AWS, active la MFA para obtener una mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte Acceso seguro a la API con MFA en la Guía del usuario de IAM.
Para obtener más información sobre las prácticas recomendadas de IAM, consulte Prácticas recomendadas de seguridad en IAM en la Guía del usuario de IAM.
Uso de la consola de CodeArtifact
Para acceder a la consola de AWS CodeArtifact, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirle registrar y consultar los detalles acerca de los recursos de CodeArtifact 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 conceder 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, permita el acceso únicamente a las acciones que coincidan con la operación de API que intentan realizar.
Para asegurarse de que los usuarios y los roles puedan seguir utilizando la consola de CodeArtifact, asocie también a las entidades la política administrada por AWSCodeArtifactAdminAccess o AWSCodeArtifactReadOnlyAccess AWS. Para obtener más información, consulte Adición de permisos a un usuario en la Guía del usuario de IAM:
Políticas administradas por AWS (predefinidas) para AWS CodeArtifact
AWS aborda muchos casos de uso comunes dando políticas de IAM independientes creadas y administradas por AWS. Estas políticas administradas por AWS conceden los permisos necesarios para casos de uso comunes, lo que le evita tener que investigar los permisos que se necesitan. Para más información, consulte Políticas administradas de AWS en la Guía del usuario de IAM.
Las siguientes políticas administradas por AWS, que pueden asociarse a los usuarios de la cuenta, son específicas de AWS CodeArtifact.
-
AWSCodeArtifactAdminAccess: proporciona acceso completo a CodeArtifact, incluidos los permisos para administrar los dominios de CodeArtifact. -
AWSCodeArtifactReadOnlyAccess: proporciona acceso de solo lectura a CodeArtifact.
Para crear y administrar los roles de servicio de CodeArtifact, debe asociar también la política administrada por AWS denominada IAMFullAccess.
También puede crear sus propias políticas de IAM personalizadas para conceder permisos a las acciones y los recursos de CodeArtifact. Puede asociar estas políticas personalizadas a los grupos o usuarios de IAM que requieran esos permisos.
Permitir a un usuario 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": "*" } ] }
Permitir que un usuario obtenga información sobre repositorios y dominios
La siguiente política permite a un usuario o rol de IAM enumerar y describir cualquier tipo de recurso de CodeArtifact, incluidos dominios, repositorios, paquetes y activos. La política también incluye el permiso codeArtifact:ReadFromRepository, que permite a la entidad principal obtener paquetes de un repositorio de CodeArtifact. No permite crear nuevos dominios o repositorios y no permite publicar nuevos paquetes.
Se requieren los permisos codeartifact:GetAuthorizationToken y sts:GetServiceBearerToken para llamar a la API GetAuthorizationToken.
Permitir que un usuario obtenga información sobre dominios específicos
A continuación se muestra un ejemplo de una política de permisos que permite a un usuario enumerar dominios sólo en la región us-east-2 para la cuenta 123456789012 para cualquier dominio que comience con el nombre my.
Permitir que un usuario obtenga información sobre repositorios específicos
A continuación se muestra un ejemplo de una política de permisos que permite al usuario obtener información sobre los repositorios que terminan en test, incluida la información sobre los paquetes que contienen. El usuario no podrá publicar, crear ni eliminar recursos.
Se requieren los permisos codeartifact:GetAuthorizationToken y sts:GetServiceBearerToken para llamar a la API GetAuthorizationToken.
Limitar la duración del token de autorización
Los usuarios deben autenticarse en CodeArtifact con tokens de autorización para publicar o consumir versiones de paquetes. Los tokens de autorización son válidos solo durante su vida útil configurada. Los tokens tienen una vida útil predeterminada de 12 horas. Para obtener más información sobre los tokens de autorización, consulte Autenticación y tokens de AWS CodeArtifact.
Al buscar un token, los usuarios pueden configurar la vida útil del token. Los valores válidos durante la vida útil de un token de autorización son 0, y cualquier número comprendido entre 900 (15 minutos) y 43200 (12 horas). Un valor de 0 creará un token con una duración igual a las credenciales temporales del rol del usuario.
Los administradores pueden limitar los valores válidos durante la vigencia de un token de autorización mediante la clave de condición sts:DurationSeconds de la política de permisos adjunta al usuario o grupo. Si el usuario intenta crear un token de autorización con una duración superior a los valores válidos, no se podrá crear el token.
Los siguientes ejemplos de políticas limitan las posibles duraciones de un token de autorización creado por los usuarios de CodeArtifact.
Ejemplo de política: limitar la vida útil del token a exactamente 12 horas (43200 segundos)
Con esta política, los usuarios solo podrán crear tokens de autorización con una duración de 12 horas.
Política de ejemplo: limitar la vida útil del token entre 15 minutos y 1 hora, o igual al período de credenciales temporales del usuario
Con esta política, los usuarios podrán crear tokens con una validez de entre 15 minutos y 1 hora. Los usuarios también podrán crear un token que dure el tiempo que duren las credenciales temporales de su rol si especifican 0 para --durationSeconds.