AWS::CloudFormation::Authentication - AWS CloudFormation

AWS::CloudFormation::Authentication

Utilice el recurso AWS::CloudFormation::Authentication para especificar las credenciales de autenticación de los archivos u orígenes indicados mediante el recurso AWS::CloudFormation::Init.

Si desea incluir información de autenticación para un archivo u origen especificados con AWS::CloudFormation::Init, utilice la propiedad uris si el origen es un URI o la propiedad buckets si el origen es un bucket de Amazon S3. Para obtener más información sobre archivos, consulte Archivos. Para obtener más información sobre orígenes, consulte Orígenes.

También puede especificar información de autenticación para los archivos directamente en el recurso AWS::CloudFormation::Init. La clave de los archivos del recurso contiene una propiedad denominada authentication. Puede utilizar la propiedad authentication para asociar información de autenticación definida en un recurso AWS::CloudFormation::Authentication directamente a un archivo.

Para archivos, AWS CloudFormation buscará información de autenticación en el siguiente orden:

  1. La propiedad authentication de la clave AWS::CloudFormation::Init de files.

  2. La propiedad uris o buckets del recurso AWS::CloudFormation::Authentication

Para orígenes, CloudFormation busca información de autenticación en la propiedad uris o buckets del recurso AWS::CloudFormation::Authentication.

Sintaxis

Para declarar esta entidad en su plantilla de CloudFormation, use la siguiente sintaxis:

Debe ser consciente de las consideraciones siguientes al usar el tipo AWS::CloudFormation::Authentication:

  • A diferencia de la mayoría de los recursos de CloudFormation, el tipo AWS::CloudFormation::Authentication no contiene un bloque denominado Properties, sino que contiene una lista de bloques con nombres asignados por el usuario, cada uno con sus propias propiedades de autenticación.

    No todas las propiedades pertenecen a cada tipo de autenticación, consulte la propiedad type para obtener más detalles.

  • A diferencia de la mayoría de los recursos de CloudFormation, los nombres de las propiedades usan minúsculas.

JSON

{ "Type" : "AWS::CloudFormation::Authentication" { "String" : { "accessKeyId" : String, "buckets" : [ String, ... ], "password" : String, "secretKey" : String, "type" : String, "uris" : [ String, ... ], "username" : String, "roleName" : String } } }

YAML

Type: AWS::CloudFormation::Authentication String: accessKeyId: String buckets: - String password: String secretKey: String type: String uris: - String username: String roleName: String

Propiedades

accessKeyId

Especifica el ID de clave de acceso para la autenticación de S3.

Obligatorio: condicional. Únicamente puede especificarse si se ha establecido la propiedad type en S3.

Tipo: cadena

buckets

Una lista delimitada por comas de buckets de Amazon S3 para asociar a las credenciales de autenticación de S3.

Obligatorio: condicional. Únicamente puede especificarse si se ha establecido la propiedad type en S3.

Tipo: lista de valores de cadena

password

Especifica la contraseña de autenticación básica.

Obligatorio: condicional. Únicamente puede especificarse si se ha establecido la propiedad type en basic.

Tipo: cadena

secretKey

Especifica la clave secreta para la autenticación de S3.

Obligatorio: condicional. Únicamente puede especificarse si se ha establecido la propiedad type en S3.

Tipo: cadena

type

Especifica si el esquema de autenticación usa un nombre de usuario y una contraseña (básica) o un ID de clave de acceso y una clave secreta (S3).

Si especifica basic, especifique las propiedades username, password y uris.

Si especifica S3, especifique las propiedades accessKeyId, secretKey y buckets (opcional).

Obligatorio: sí

Valores válidos: basic | S3

uris

Una lista delimitada por comas de URI para asociar a las credenciales de autenticación básicas. La autorización se aplica al URI especificado y cualquier URI más específico. Por ejemplo, si especifica http://www.example.com, la autorización también se aplicará a http://www.example.com/test.

Obligatorio: condicional. Únicamente puede especificarse si se ha establecido la propiedad type en basic.

Tipo: lista de valores de cadena

username

Especifica el nombre de usuario de autenticación básica.

Obligatorio: condicional. Únicamente puede especificarse si se ha establecido la propiedad type en basic.

Tipo: cadena

roleName

Describe el rol para la autenticación basada en roles.

importante

Este rol debe estar incluido en el perfil de instancia que está asociado a la instancia de EC2. Un perfil de instancia solo puede contener un rol de IAM.

Obligatorio: condicional. Únicamente puede especificarse si se ha establecido la propiedad type en S3.

Tipo: cadena.

Ejemplos

nota

A diferencia de la mayoría de los recursos, el tipo AWS::CloudFormation::Authentication define una lista de bloques con nombres asignados por el usuario. Cada uno de estos contiene propiedades de autenticación que usan nombres compuestos con la inicial en minúsculas.

Autenticación del servidor web de EC2

Este fragmento de código de plantilla muestra cómo obtener un archivo a partir de un bucket de S3 privado dentro de una instancia de EC2. Las credenciales utilizadas para la autenticación se definen en el recurso AWS::CloudFormation::Authentication; el recurso AWS::CloudFormation::Init hace referencia a ellas en la sección archivos.

JSON

"WebServer": { "Type": "AWS::EC2::Instance", "DependsOn" : "BucketPolicy", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : { "packages" : { "yum" : { "httpd" : [] } }, "files" : { "/var/www/html/index.html" : { "source" : { "Fn::Join" : [ "", [ "http://s3.amazonaws.com/", { "Ref" : "BucketName" }, "/index.html" ] ] }, "mode" : "000400", "owner" : "apache", "group" : "apache", "authentication" : "S3AccessCreds" } }, "services" : { "sysvinit" : { "httpd" : { "enabled" : "true", "ensureRunning" : "true" } } } } }, "AWS::CloudFormation::Authentication" : { "S3AccessCreds" : { "type" : "S3", "accessKeyId" : { "Ref" : "AccessKeyID" }, "secretKey" : { "Ref" : "SecretAccessKey" } } } }, "Properties": { EC2 Resource Properties ... } }

YAML

WebServer: Type: AWS::EC2::Instance DependsOn: BucketPolicy Metadata: AWS::CloudFormation::Init: config: packages: yum: httpd: [] files: /var/www/html/index.html: source: !Join - '' - - 'http://s3.amazonaws.com/' - !Ref BucketName - '/index.html' mode: '000400' owner: apache group: apache authentication: S3AccessCreds services: sysvinit: httpd: enabled: 'true' ensureRunning: 'true' AWS::CloudFormation::Authentication: S3AccessCreds: type: S3 accessKeyId: !Ref AccessKeyID secretKey: !Ref SecretAccessKey Properties: EC2 Resource Properties ...

Especificación de autenticación básica y S3

El siguiente fragmento de código de plantilla de ejemplo incluye tipos de autenticación básica y S3.

JSON

"AWS::CloudFormation::Authentication" : { "testBasic" : { "type" : "basic", "username" : { "Ref" : "UserName" }, "password" : { "Ref" : "Password" }, "uris" : [ "example.com/test" ] }, "testS3" : { "type" : "S3", "accessKeyId" : { "Ref" : "AccessKeyID" }, "secretKey" : { "Ref" : "SecretAccessKey" }, "buckets" : [{ "Fn::Sub": "${BucketName}" }] } }

YAML

AWS::CloudFormation::Authentication: testBasic: type: basic username: !Ref UserName password: !Ref Password uris: - 'example.com/test' testS3: type: S3 accessKeyId: !Ref AccessKeyID secretKey: !Ref SecretAccessKey buckets: - !Sub ${BucketName}

Roles de IAM

El siguiente ejemplo muestra cómo utilizar los roles de IAM:

  • myRole es un recurso AWS::IAM::Role.

  • La instancia Amazon EC2 que ejecuta cfn-init está asociada a myRole a través de un perfil de instancia.

  • El ejemplo especifica la autenticación mediante la propiedad buckets, como en la autenticación de Amazon S3. También puede especificar la autenticación por nombre.

JSON

"AWS::CloudFormation::Authentication": { "rolebased" : { "type": "S3", "buckets": [{ "Fn::Sub": "${BucketName}" }], "roleName": { "Ref": "myRole" } } }

YAML

AWS::CloudFormation::Authentication: rolebased: type: S3 buckets: - !Sub ${BucketName} roleName: !Ref myRole