AWS::CloudFormation::Authentication - AWS CloudFormation

Esta es la nueva Guía de referencia de plantillas de AWS CloudFormation. Actualice sus marcadores y enlaces. Para obtener ayuda sobre cómo empezar a usar CloudFormation, consulte la Guía del usuario de AWS CloudFormation.

AWS::CloudFormation::Authentication

Utilice el tipo de metadatos AWS::CloudFormation::Authentication para especificar las credenciales de autenticación de los archivos u orígenes indicados mediante el tipo de metadatos 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 tipo de metadatos 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 tipo de metadatos 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 de los metadatos AWS::CloudFormation::Authentication.

En el caso de los orígenes, CloudFormation busca información de autenticación en la propiedad uris o buckets de los metadatos AWS::CloudFormation::Authentication.

Sintaxis

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

Sea consciente de las consideraciones siguientes al usar el tipo de metadatos AWS::CloudFormation::Authentication:

  • A diferencia de la mayoría de los recursos de CloudFormation, el tipo de metadatos 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. Para obtener más información, consulte la propiedad type.

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

JSON

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

YAML

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

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 los metadatos AWS::CloudFormation::Authentication y los metadatos AWS::CloudFormation::Init hacen referencia a ellas en la sección files.

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