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.
Uso de permisos gestionados parametrizados en AWS RAM
Un permiso administrado parametrizado es un permiso administrado con marcadores de posición en las condiciones de la política que usted rellena con sus propios valores. Estos marcadores de posición son parámetros de plantilla. No crean un nuevo tipo de permiso administrado. Añaden variabilidad a la plantilla de políticas de una plantilla existente.
En lugar de crear un permiso gestionado por el cliente por separado para cada valor de condición único, se crea un permiso gestionado por el cliente con parámetros. Cuando lo asocias a un recurso compartido, proporcionas un valor para cada parámetro. AWS RAM sustituye sus valores en la plantilla de políticas y adjunta la política basada en recursos resultante a los recursos compartidos.
Por ejemplo, un equipo de plataforma central crea un permiso administrado por el cliente para AWS Systems Manager Parámetros del almacén de parámetros (tipo de recurso) ssm:Parameter). Otorga acceso de lectura solo a los directores con un certificado aprobado team etiqueta. El equipo de la plataforma comparte el permiso administrado por ese cliente con las cuentas de su organización. Luego, cada cuenta lo usa en sus propios recursos compartidos, que pueden contener uno o más parámetros del almacén de parámetros. En cada recurso compartido, la cuenta proporciona team valores de etiqueta de los principales que pueden leer los parámetros compartidos del almacén de parámetros.
Temas
Tipos de parámetros de plantilla
AWS RAM admite dos tipos de parámetros. El tipo determina cómo AWS RAM sustituye el valor en la política renderizada. En el AWS RAM La API y el AWS CLI, los tipos son STRING y STRING_LIST. El AWS RAM la consola los muestra como Cadena y StringList.
STRING-
Acepta exactamente un valor de cadena.
-
Puede usar un
STRINGparámetro en una clave de condición o en un valor de condición. -
Puede incrustar un
STRINGparámetro en otro texto. Por ejemplo,"arn:aws:iam::@{accountId}:role/Auditor". -
El valor representado es siempre una cadena. Como los operadores de condiciones de IAM convierten las cadenas en el tipo con el que comparan,
STRINGEl parámetro puede proporcionar valores numéricos, booleanos, de fecha, de dirección IP o de ARN.
-
STRING_LIST-
Acepta de 1 a 100 valores de cadena.
-
Puede usar un
STRING_LISTparámetro solo en un valor de condición, no en una clave de condición. -
Si el valor de la condición es una cadena única que contiene solo el parámetro, por ejemplo
"@{teams}", AWS RAM representa una matriz de los valores que usted proporciona. Si proporciona un valor único, AWS RAM representa una sola cadena. -
Si el valor de la condición contiene texto antes o después del parámetro, por ejemplo
"arn:aws:iam::@{accountIds}:role/ParameterReader", AWS RAM combina cada valor con ese texto. -
Para combinar cada valor con más de una cadena, liste las cadenas en una matriz de valores de condición. AWS RAM representa cada entrada de matriz para cada valor y elimina los resultados duplicados. El resultado es siempre una matriz.
-
AWS RAM e IAM no divide una cadena por comas. Una cadena separada por comas se compara como un valor.
Para ver ejemplos, consulte STRING_LIST ejemplos de parámetros.
-
Reglas de sintaxis de plantillas de políticas
Al agregar parámetros a la plantilla de políticas de un permiso administrado, se aplican las siguientes reglas. Si una solicitud infringe una de estas reglas, AWS RAM la rechaza con un InvalidParameterException o InvalidPolicyException error.
-
Un marcador de posición de parámetros utiliza la sintaxis
@{parameterName}. -
Los nombres de los parámetros pueden contener letras (a-z, A-Z), números (0-9), dos puntos (:), guiones (-) y guiones bajos (_). Los nombres deben ser únicos en una versión de permisos administrados y la comparación no tiene en cuenta las mayúsculas y minúsculas.
-
Debe declarar cada parámetro al crear el permiso o la versión del permiso. Cada declaración requiere un nombre, un tipo y una descripción. La descripción puede tener hasta 255 caracteres.
-
Todos los parámetros declarados deben aparecer en la plantilla de políticas.
-
Los marcadores de posición coinciden exactamente con los nombres declarados, incluidas las mayúsculas y minúsculas. El texto del
@{...}el formato que no coincide exactamente con un nombre declarado permanece en la política como texto literal. Por ejemplo, si declarasteamspero escribe@{Teams}, AWS RAM regalos@{Teams}como texto y rechaza la solicitud porqueteamsno se usa. -
Los parámetros solo pueden aparecer en
Conditionelemento, como clave de condición o como valor de condición. AWS RAM rechaza los parámetros delEffect,Action, o cualquier otro elemento. -
Una clave de condición puede contener como máximo un parámetro y debe ser un
STRINGparámetro. Un valor de condición puede contener más de un parámetro, por ejemplo"@{project}-@{stage}". Cuando el valor de una condición se combinaSTRING_LISTparámetros, AWS RAM representa cada combinación de sus valores, hasta 100 cadenas para cada valor de condición. -
Puede declarar hasta 100 parámetros para cada versión de permiso administrado.
-
Los parámetros no tienen valores predeterminados. Al asociar el permiso a un recurso compartido, debe proporcionar un valor que no esté vacío para cada parámetro declarado y no puede proporcionar un nombre que no esté declarado ni proporcionar el mismo nombre dos veces.
Crea un permiso administrado parametrizado
Crea un permiso administrado parametrizado de la misma manera que crea cualquier otro permiso administrado de cliente. La diferencia es que usted declara los parámetros y los usa @{parameterName} marcadores de posición en las condiciones de la plantilla de política.
Control de versiones de un permiso gestionado parametrizado
Los permisos gestionados parametrizados se versionan de la misma forma que cualquier otro permiso gestionado por el cliente. Cada versión declara sus parámetros de forma independiente, por lo que una nueva versión puede declarar un conjunto de parámetros diferente al de la versión anterior.
Para crear una nueva versión, ejecute crear una versión con permiso comando con --policy-template y --permission-template-parameters parámetros. En el siguiente ejemplo, se agrega una segunda condición con STRING parámetro denominado environment.
$aws ram create-permission-version \ --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \ --permission-template-parameters '[{"name":"teams","type":"STRING_LIST","description":"Values of the team principal tag that can read the shared parameters"},{"name":"environment","type":"STRING","description":"Value of the environment principal tag that can read the shared parameters"}]' \ --policy-template '{"Effect":"Allow","Action":["ssm:GetParameter","ssm:GetParameters"],"Condition":{"StringEquals":{"aws:PrincipalTag/team":"@{teams}","aws:PrincipalTag/environment":"@{environment}"}}}'
Una nueva versión se convierte en la versión predeterminada en cuanto la creas. Los recursos compartidos existentes conservan la versión que utilizan. Cuando el propietario de un recurso compartido lo actualiza a la nueva versión, debe proporcionar valores para los parámetros que declara la nueva versión. Para obtener más información, consulte Actualización AWS permisos administrados para una versión más reciente.
Para obtener más información sobre cómo funcionan las versiones de permisos administrados por el cliente y las versiones predeterminadas, consulte Creación y uso de permisos gestionados por el cliente en AWS RAM.
Obtenga una vista previa de una plantilla de política representada
Antes de asociar un permiso administrado parametrizado a un recurso compartido, puede obtener una vista previa de la política que AWS RAM renderizados a partir de valores de parámetros específicos.
En el AWS RAM cuando crees o actualices un recurso compartido, introduce los valores en Valores de los parámetros de la plantilla y elija Vista previa de la política renderiz.
En el AWS CLI, ejecuta el obtener permiso comando con --permission-template-parameters parámetro. El permission El campo de la respuesta contiene la política con sus valores en lugar de los marcadores de posición.
$aws ram get-permission \ --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \ --permission-template-parameters '[{"name":"teams","values":["payments","analytics"]},{"name":"environment","values":["prod"]}]'{ "permission": { "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "version": "2", "defaultVersion": true, "name": "ParameterReadByTeam", "resourceType": "ssm:Parameter", "permission": "{\"Effect\":\"Allow\",\"Action\":[\"ssm:GetParameter\",\"ssm:GetParameters\"],\"Condition\":{\"StringEquals\":{\"aws:PrincipalTag/team\":[\"payments\",\"analytics\"],\"aws:PrincipalTag/environment\":\"prod\"}}}", "creationTime": 1763400000.000, "lastUpdatedTime": 1763400000.000, "isResourceTypeDefault": false, "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "status": "ATTACHABLE", "permissionTemplateParameters": [ { "name": "teams", "type": "STRING_LIST", "description": "Values of the team principal tag that can read the shared parameters" }, { "name": "environment", "type": "STRING", "description": "Value of the environment principal tag that can read the shared parameters" } ] } }
Sin el --permission-template-parameters parámetro, el get-permission el comando devuelve la plantilla de política con el @{parameterName} marcadores de posición. El permissionTemplateParameters el campo muestra el nombre, el tipo y la descripción de cada parámetro declarado.
Asocie un permiso administrado parametrizado a un recurso compartido
Al asociar un permiso administrado parametrizado a un recurso compartido, debe proporcionar valores para todos los parámetros que declara la versión. AWS RAM representa la plantilla de política con sus valores y adjunta la política basada en recursos resultante a los recursos compartidos de ese tipo.
Para mover muchos recursos compartidos de una versión o permiso a otra, ejecute reemplazar asociaciones de permisos. Si la versión de destino declara parámetros, incluya --permission-template-parameters. AWS RAM aplica los mismos valores a todos los recursos compartidos que actualiza el comando.
Vea los parámetros y valores de la plantilla
Puede ver los parámetros que declara un permiso administrado y los valores que proporcionan sus recursos compartidos.
- Vea los parámetros que declara un permiso administrado
-
Ejecute el obtener permiso comando. El
permissionTemplateParametersel campo muestra el nombre, el tipo y la descripción de cada parámetro. En la consola, la página de detalles del permiso muestra la misma información. - Vea los valores que proporciona un recurso compartido
-
Ejecute el list-resource-share-permissions comando. Para cada permiso gestionado parametrizado asociado, el
permissionTemplateParametersEl campo incluye los valores que proporciona el recurso compartido.$aws ram list-resource-share-permissions \ --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111{ "permissions": [ { "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "version": "2", "defaultVersion": true, "name": "ParameterReadByTeam", "resourceType": "ssm:Parameter", "status": "ATTACHABLE", "creationTime": 1763400000.000, "lastUpdatedTime": 1763400000.000, "isResourceTypeDefault": false, "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "permissionTemplateParameters": [ { "name": "teams", "values": ["payments"] }, { "name": "environment", "values": ["prod"] } ] } ] }El asociaciones de permisos de lista El comando también devuelve los valores de los recursos compartidos de su propiedad. Cuando se enumeran los recursos compartidos en otros Cuentas de AWS que utilizan un permiso administrado por el cliente que compartiste, la respuesta no incluye sus valores.
Compartir permisos gestionados parametrizados entre cuentas
Puedes compartir un permiso gestionado parametrizado con otras Cuentas de AWS como cualquier otro permiso gestionado por un cliente. Las cuentas receptoras pueden ver el nombre, el tipo y la descripción de cada parámetro, por lo que debes escribir descripciones que les indiquen qué valor deben proporcionar. Cada cuenta receptora proporciona sus propios valores cuando asocia el permiso administrado compartido a sus propios recursos compartidos.
Para obtener instrucciones sobre cómo compartir los permisos administrados por los clientes, consulte Compartir y usar los permisos gestionados por los clientes en todas las cuentas de AWS RAM.
Controle los valores de los parámetros de la plantilla con políticas de IAM
Puede utilizar el ram:PermissionTemplateParameter/ la clave de condición de una política de IAM para controlar los valores que un principal puede proporcionar para un parámetro. La clave tiene varios valores y contiene los valores de la solicitud del parámetro con nombre. Está disponible en el recurso de permisos para parameter-nameram:CreateResourceShare, ram:AssociateResourceSharePermission, y ram:ReplacePermissionAssociations acciones.
En el siguiente ejemplo de política, la primera declaración otorga las acciones del ParameterReadByTeam permiso gestionado por el cliente. La segunda declaración los niega si se proporciona algún valor para teams es algo diferente a payments o analytics. Como la clave tiene varios valores, la política utiliza el ForAnyValue establecer operador. AWS RAM requiere un valor para cada parámetro declarado, por lo que una solicitud que utilice este permiso administrado por el cliente siempre incluye la clave.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceSharePermission", "ram:ReplacePermissionAssociations" ], "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam" }, { "Effect": "Deny", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceSharePermission", "ram:ReplacePermissionAssociations" ], "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "Condition": { "ForAnyValue:StringNotEquals": { "ram:PermissionTemplateParameter/teams": [ "payments", "analytics" ] } } } ] }
Estas declaraciones solo controlan el recurso de permisos. El principal también necesita permiso para los demás recursos de la solicitud, como el recurso compartido y los recursos que comparte. Para obtener más ejemplos, consulte Ejemplos de políticas de IAM para AWS RAM.
STRING_LIST ejemplos de parámetros
Los siguientes ejemplos muestran cómo AWS RAM renderizados STRING_LIST parámetros.
ejemplo UN STRING_LIST parámetro solo en un valor de condición
Plantilla:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": "@{teams}" } }
Valores: ["payments", "analytics"]
Política renderizada:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": ["payments", "analytics"] } }
Con el valor único ["payments"], el valor representado es la cadena "payments".
ejemplo UN STRING_LIST parámetro con texto circundante
AWS RAM combina cada valor con el texto anterior y posterior al parámetro.
Plantilla:
"Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::@{accountIds}:role/ParameterReader" } }
Valores: ["111122223333", "444455556666"]
Política renderizada:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/ParameterReader", "arn:aws:iam::444455556666:role/ParameterReader" ] } }
ejemplo A STRING_LIST parámetro en una matriz de valores de condición
AWS RAM representa cada entrada de la matriz para cada valor y elimina los resultados duplicados.
Plantilla:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::@{accountIds}:role/Auditor", "arn:aws:iam::@{accountIds}:role/Reader" ] } }
Valores: ["111122223333", "444455556666"]
Política renderizada:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/Auditor", "arn:aws:iam::444455556666:role/Auditor", "arn:aws:iam::111122223333:role/Reader", "arn:aws:iam::444455556666:role/Reader" ] } }