es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo AccessDeniedException desde la función Lambda al llamar al Conjunto de permisos de AWS SSO.

A continuación se presenta mi código en Python para agregar/actualizar una política en línea para un conjunto de permisos de AWS SSO:

Inline_Policy = """ 
   "Version": "2012-10-17",
   "Statement": [
        {
          "Action": [
                     "s3:Get",
                     "s3:List"
            ],
    "Effect": "Allow",
    "Resource": "*"
   }
] """
response = client.put_inline_policy_to_permission_set(
InstanceArn='arn:aws:sso:::instance/ssoins-sssss',
PermissionSetArn='arn:aws:sso:::permissionSet/ssoins-sssss/ps-sssss',
InlinePolicy=Inline_Policy) 

Estoy obteniendo el siguiente error:

“errorMessage”: “Se produjo un error (AccessDeniedException) al llamar a la operación PutInlinePolicyToPermissionSet: El usuario arn:aws:sts::ddddddd:assumed-role/ModificarPermisoSet-role-ssss/ModificarPermisoSet no está autorizado para realizar la acción sso:PutInlinePolicyToPermissionSet en el recurso arn:aws:sso:::permissionSet/ssoins-sssss/ps-sssss”

Intenté agregar la política de administrador al rol de Lambda que ejecuta la función y aún así obtengo un error de permiso denegado.

¿Existe alguna forma diferente de manejar los conjuntos de permisos de SSO en comparación con los permisos habituales de IAM?

Política de administrador adjunta a Lambda:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución

    Sí, los permisos de AWS SSO son diferentes a los permisos regulares de IAM. Para realizar la operación PutInlinePolicyToPermissionSet, necesitas tener los permisos específicos de AWS SSO.

    Puedes otorgar la política administrada de AWS llamada AWSManagedMicrosoftADSSOAccess al usuario, rol o grupo de IAM que necesite acceder a la instancia de AWS SSO.

    Alternativamente, puedes crear una política personalizada con los siguientes permisos y adjuntarla al rol de Lambda:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "SSOInlinePolicyAccess",
                "Effect": "Allow",
                "Action": [
                    "sso:PutInlinePolicyToPermissionSet"
                ],
                "Resource": [
                    "arn:aws:sso:::permissionSet/<sso_instance_id>/<permission_set_id>"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "sso:ListPermissionSets",
                    "sso:DescribePermissionSet"
                ],
                "Resource": [
                    "arn:aws:sso:::instance/<sso_instance_id>"
                ]
            }
        ]
    }
    

    Asegúrate de reemplazar <sso_instance_id> y <permission_set_id> con los IDs reales de tu instancia de AWS SSO y conjunto de permisos.

    Además, asegúrate de que la función de Lambda se esté ejecutando en la misma cuenta de AWS que la instancia de SSO y que la instancia de SSO tenga la relación de confianza necesaria con el rol de ejecución de Lambda.

Comments are closed.