Este é o novo Guia de referência de modelos do CloudFormation. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o Guia do usuário do AWS CloudFormation.
AWS::CloudFormation::Authentication
Use o tipo de metadado AWS::CloudFormation::Authentication para especificar credenciais de autenticação para arquivos ou fontes especificados com o tipo de metadado AWS::CloudFormation::Init.
Para incluir informações de autenticação para um arquivo ou fonte especificado com o AWS::CloudFormation::Init, use a propriedade uris se a fonte é um URI ou a propriedade buckets se a fonte é um bucket do Amazon S3. Para obter mais informações sobre arquivos, consulte Arquivos. Para obter mais informações sobre fontes, consulte Origens.
Você também pode especificar as informações de autenticação para arquivos diretamente no tipo de metadado AWS::CloudFormation::Init. A chave de arquivos do recurso contém uma propriedade nomeada authentication. Você pode usar a propriedade authentication para associar informações de autenticação definidas em um tipo de metadado diretamente a um arquivo.AWS::CloudFormation::Authentication
Para arquivos, o CloudFormation busca informações de autenticação na seguinte ordem:
-
A propriedade
authenticationda chaveAWS::CloudFormation::Initfiles. -
A propriedade
urisoubucketsdo metadadoAWS::CloudFormation::Authentication.
Para fontes, o CloudFormation buscará informações de autenticação na propriedade uris ou buckets do metadado AWS::CloudFormation::Authentication.
Tópicos
Sintaxe
Para declarar essa entidade no modelo do CloudFormation, use a seguinte sintaxe:
Esteja ciente das seguintes considerações ao usar o tipo de metadado AWS::CloudFormation::Authentication:
-
Ao contrário da maioria dos recursos do CloudFormation, o tipo de metadado
AWS::CloudFormation::Authenticationnão contêm um bloco chamado Propriedades, mas sim uma lista de blocos nomeados pelo usuário, cada um com as próprias propriedades de autenticação.Nem todas as propriedades são adequadas a cada tipo de autenticação. Para obter mais informações, consulte o tipo de propriedade.
-
Ao contrário da maioria dos recursos do CloudFormation, os nomes das propriedades
AWS::CloudFormation::Authenticationusam letras minúsculas concatenadas.
JSON
{ "AWS::CloudFormation::Authentication" { "String" : { "accessKeyId" :String, "buckets" : [String, ...], "password" :String, "secretKey" :String, "type" :String, "uris" : [String, ...], "username" :String, "roleName" :String} } }
YAML
AWS::CloudFormation::AuthenticationString: accessKeyId:Stringbuckets: -Stringpassword:StringsecretKey:Stringtype:Stringuris: -Stringusername:StringroleName:String
Propriedades
accessKeyId-
Especifica o ID da chave de acesso para autenticação S3.
Obrigatório: condicional. Pode ser especificada somente se a propriedade
typeestiver definida comoS3.Tipo: string
buckets-
Uma lista delimitada por vírgulas de buckets Amazon S3 a serem associados às credenciais de autenticação S3.
Obrigatório: condicional. Pode ser especificada somente se a propriedade
typeestiver definida comoS3.Tipo: lista de valores de strings
password-
Especifica a senha para autenticação básica.
Obrigatório: condicional. Pode ser especificada somente se a propriedade de tipo estiver definida como
basic.Tipo: string
secretKey-
Especifica a chave secreta para a autenticação S3.
Obrigatório: condicional. Pode ser especificada somente se a propriedade
typeestiver definida comoS3.Tipo: string
type-
Especifica se o esquema de autenticação usa um nome de usuário e uma senha (básico) ou um ID de chave de acesso e chave secreta (S3).
Se você especificar
basic, especifique as propriedadesusername,passwordeuris.Se você especificar
S3, especifique as propriedadesaccessKeyId,secretKeyebuckets(opcional).Obrigatório: Sim
Valores válidos:
basic|S3 uris-
Uma lista delimitada por vírgulas de URIs a serem associados às credenciais de autenticação básicas. A autorização se aplica a URIs especificados e a todos os URIs mais específicos. Por exemplo, se você especificar
http://www.example.com, a autorização também se aplicará ahttp://www.example.com/test.Obrigatório: condicional. Pode ser especificada somente se a propriedade
typeestiver definida comobasic.Tipo: lista de valores de strings
username-
Especifica o nome de usuário para autenticação básica.
Obrigatório: condicional. Pode ser especificada somente se a propriedade de tipo estiver definida como
basic.Tipo: string
roleName-
Descreve a função para a autenticação baseada em função.
Importante
Essa função deve estar contida no perfil de instância anexado à instância do EC2. Um perfil de instância pode conter apenas uma função do IAM.
Obrigatório: condicional. Pode ser especificada somente se a propriedade
typeestiver definida comoS3.Tipo: string
Exemplos
Autenticação de servidor Web do EC2
Este trecho de modelo mostra como obter um arquivo de um bucket S3 privado em uma instância EC2. As credenciais usadas para autenticação são definidas no metadado AWS::CloudFormation::Authentication e referenciadas pelo metadado AWS::CloudFormation::Init na seção arquivos.
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 ...
Especificar a autenticação básica e S3
O exemplo do trecho de modelo inclui dois tipos de autenticação: básica e 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}
Perfis do IAM
O exemplo a seguir mostra como usar as funções do IAM:
-
myRoleé um recurso AWS::IAM::Role. -
A instância do Amazon EC2 que executa
cfn-initestá associada amyRolepor meio de um perfil da instância. -
O exemplo especifica a autenticação usando a propriedade
buckets, como na autenticação Amazon S3. Você também pode especificar a autenticação por nome.
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