Proteção de dados em AWS HealthOmics - AWS HealthOmics

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Proteção de dados em AWS HealthOmics

O modelo de responsabilidade AWS compartilhada de se aplica à proteção de dados na AWS HealthOmics. Conforme descrito neste modelo, AWS é responsável por proteger a infraestrutura global que executa todos os Nuvem AWS. Você é responsável por manter o controle sobre o conteúdo hospedado nessa infraestrutura. Você também é responsável pelas tarefas de configuração e gerenciamento de segurança dos Serviços da AWS que usa. Para obter mais informações sobre a privacidade de dados, consulte as Data Privacy FAQ. Para obter mais informações sobre a proteção de dados na Europa, consulte a postagem do blog AWS Shared Responsibility Model and RGPD no Blog de segurança da AWS .

Para fins de proteção de dados, recomendamos que você proteja Conta da AWS as credenciais e configure usuários individuais com AWS IAM Identity Center ou AWS Identity and Access Management (IAM). Dessa maneira, cada usuário receberá apenas as permissões necessárias para cumprir suas obrigações de trabalho. Recomendamos também que você proteja seus dados das seguintes formas:

  • Use uma autenticação multifator (MFA) com cada conta.

  • Use SSL/TLS para se comunicar com AWS os recursos. Exigimos TLS 1.2 e recomendamos TLS 1.3.

  • Configure a API e o registro de atividades do usuário com AWS CloudTrail. Para obter informações sobre o uso de CloudTrail trilhas para capturar AWS atividades, consulte Como trabalhar com CloudTrail trilhas no Guia AWS CloudTrail do usuário.

  • Use soluções de AWS criptografia, juntamente com todos os controles de segurança padrão Serviços da AWS.

  • Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajuda a localizar e proteger dados sigilosos armazenados no Amazon S3.

  • Se você precisar de módulos criptográficos validados pelo FIPS 140-3 ao acessar AWS por meio de uma interface de linha de comando ou de uma API, use um endpoint FIPS. Para obter mais informações sobre os endpoints FIPS disponíveis, consulte Federal Information Processing Standard (FIPS) 140-3.

É altamente recomendável que nunca sejam colocadas informações confidenciais ou sigilosas, como endereços de e-mail de clientes, em tags ou campos de formato livre, como um campo Nome. Isso inclui quando você trabalha com a AWS HealthOmics ou outra Serviços da AWS pessoa usando o console AWS CLI, a API ou AWS SDKs. Quaisquer dados inseridos em tags ou em campos de texto de formato livre usados para nomes podem ser usados para logs de faturamento ou de diagnóstico. Se você fornecer um URL para um servidor externo, recomendamos fortemente que não sejam incluídas informações de credenciais no URL para validar a solicitação a esse servidor.

Criptografia em repouso

Para proteger dados confidenciais de clientes em repouso, AWS HealthOmics fornece criptografia por padrão usando uma chave do AWS Key Management Service (AWS KMS) de propriedade do serviço. As chaves gerenciadas pelo cliente também são suportadas. Para saber mais sobre a chave gerenciada pelo cliente, consulte Amazon Key Management Service.

Todos os armazenamentos de HealthOmics dados (armazenamento e análise) oferecem suporte ao uso de chaves gerenciadas pelo cliente. A configuração de criptografia não pode ser alterada após a criação de um armazenamento de dados. Se um armazenamento de dados estiver usando um Chave pertencente à AWS, ele será indicado como AWS_OWNED_KMS_KEY e você não verá a chave específica usada para criptografia em repouso.

Para HealthOmics fluxos de trabalho, as chaves gerenciadas pelo cliente não são suportadas pelo sistema de arquivos temporário; no entanto, todos os dados em repouso são criptografados automaticamente usando o algoritmo de criptografia de criptografia de bloco XTS-AES-256 para criptografar o sistema de arquivos. O usuário e a função do IAM usados para iniciar a execução de um fluxo de trabalho também devem ter acesso às AWS KMS chaves usadas para os buckets de entrada e saída do fluxo de trabalho. Os fluxos de trabalho não usam concessões e a AWS KMS criptografia é limitada aos buckets de entrada e saída do Amazon S3. A função do IAM usada para o fluxo de trabalho também APIs deve ter acesso às AWS KMS chaves usadas, bem como aos buckets de entrada e saída do Amazon S3. Você pode usar as funções e permissões do IAM para controlar o acesso ou AWS KMS as políticas. Para saber mais, consulte Autenticação e controle de acesso para AWS KMS.

Quando você usa AWS Lake Formation com o HealthOmics Analytics, todas as permissões de descriptografia associadas ao Lake Formation também são concedidas aos buckets de entrada e saída do Amazon S3. Mais informações sobre como AWS Lake Formation gerenciar permissões podem ser encontradas na AWS Lake Formation documentação.

HealthOmics O Analytics concede ao Lake Formation kms: Decrypt permissões para ler os dados criptografados em um bucket do Amazon S3. Contanto que você tenha permissões para consultar os dados por meio do Lake Formation, você poderá ler os dados criptografados. O acesso aos dados é controlado por meio do controle de acesso aos dados no Lake Formation, não por meio de uma política de chaves do KMS. Para saber mais, consulte as solicitações de serviço AWS integradas da AWS na documentação do Lake Formation.

Chaves pertencentes à AWS

Por padrão, HealthOmics usa Chaves pertencentes à AWS para criptografar automaticamente dados em repouso, pois esses dados podem conter informações confidenciais, como informações de identificação pessoal (PII) ou Informações de saúde protegidas (PHI). Chaves pertencentes à AWS não estão armazenados em sua conta. Elas fazem parte de uma coleção de chaves do KMS que a AWS possui e gerencia para uso em várias contas da AWS.

Os serviços da AWS podem ser usados Chaves pertencentes à AWS para proteger seus dados. Você não pode visualizar, gerenciar Chaves pertencentes à AWS, acessar ou auditar seu uso. No entanto, você não precisa fazer nenhum trabalho nem alterar nenhum programa para proteger as chaves que criptografam seus dados.

Não é cobrada uma taxa mensal ou uma taxa de uso pelo uso Chaves pertencentes à AWS, e elas não contam nas cotas do AWS KMS da sua conta. Para obter mais informações, consulte Chaves gerenciadas pela AWS.

Chaves gerenciadas pelo cliente

HealthOmics suporta o uso de chaves simétricas gerenciadas pelo cliente que você cria, possui e gerencia para adicionar uma segunda camada de criptografia sobre a criptografia existente de propriedade da AWS. Como você tem controle total dessa camada de criptografia, você pode realizar tarefas como:

  • Estabelecer e manter políticas de chaves, políticas do IAM e concessões

  • Rotacionar os materiais de chave de criptografia

  • Habilitar e desabilitar políticas de chaves

  • Adicionar etiquetas

  • Criar réplicas de chaves

  • Chaves de agendamento para exclusão

Você também pode usar CloudTrail para rastrear as solicitações HealthOmics enviadas AWS KMS em seu nome. Aplicam-se cobranças adicionais do AWS KMS . Para obter mais informações, consulte chaves gerenciadas pelo cliente.

Criar uma chave gerenciada pelo cliente

Você pode criar uma chave simétrica gerenciada pelo cliente usando o AWS Management Console ou o. AWS KMS APIs

Siga as etapas para criar chaves simétricas gerenciadas pelo cliente no Guia do desenvolvedor do AWS Key Management Service.

As políticas de chaves controlam o acesso à chave gerenciada pelo cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar uma chave gerenciada pelo cliente, você pode especificar uma política de chaves. Para obter mais informações, consulte Gerenciamento do acesso às chaves gerenciadas pelo cliente no Guia do desenvolvedor do AWS Key Management Service.

Para usar uma chave gerenciada pelo cliente com seus recursos do HealthOmics Analytics, o responsável pela chamada exige kms: CreateGrant operations na política de chaves. Isso permite que o sistema use um token FAS para criar uma concessão para uma chave gerenciada pelo cliente que controla o acesso a uma chave KMS especificada. Essa chave dá ao usuário acesso às operações kms:grant necessárias. HealthOmics Consulte Uso de subsídios para obter mais informações.

Para HealthOmics análises, as seguintes operações de API devem ser permitidas para o responsável pela chamada:

  • kms: CreateGrant adiciona concessões a uma chave gerenciada pelo cliente específica, o que permite o acesso às operações de concessão no HealthOmics Analytics.

  • kms: DescribeKey fornece os detalhes da chave gerenciada pelo cliente necessários para validar a chave. Isso é necessário para todas as operações.

  • kms: GenerateDataKey fornece acesso para criptografar recursos em repouso para todas as operações de gravação. Além disso, essa ação fornece detalhes da chave gerenciada pelo cliente que o serviço pode usar para validar se o chamador tem acesso para usar a chave.

  • O KMS:Decrypt fornece acesso às operações de leitura ou pesquisa de recursos criptografados.

Para usar uma chave gerenciada pelo cliente com seus recursos HealthOmics de armazenamento, o responsável pelo HealthOmics serviço e o responsável pela chamada devem ser permitidos na política de chaves. Isso permite que o serviço valide se o chamador tem acesso à chave e usa o responsável pelo serviço para executar o gerenciamento da loja usando a chave gerenciada pelo cliente. Para HealthOmics armazenamento, a política de chaves do responsável pelo serviço deve permitir as seguintes operações de API:

  • kms: DescribeKey fornece os detalhes da chave gerenciada pelo cliente necessários para validar a chave. Isso é necessário para todas as operações.

  • kms: GenerateDataKey fornece acesso para criptografar recursos em repouso para todas as operações de gravação. Além disso, essa ação fornece detalhes da chave gerenciada pelo cliente que o serviço pode usar para validar se o chamador tem acesso para usar a chave.

  • O KMS:Decrypt fornece acesso às operações de leitura ou pesquisa de recursos criptografados.

O exemplo a seguir mostra uma declaração de política que permite que um responsável pelo serviço crie e interaja com uma HealthOmics sequência ou um repositório de referência criptografado usando a chave gerenciada pelo cliente:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*" } ] }

O exemplo a seguir mostra uma política que cria permissões para um armazenamento de dados descriptografar dados de um bucket do Amazon S3.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "omics:GetReference", "omics:GetReferenceMetadata" ], "Resource": [ "arn:AWS:omics:{{region}}:{{accountId}}:referenceStore/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:AWS:s3:::[[s3path]]/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:AWS:kms:{{region}}:{111122223333}:key/{{key_id}}" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.{{region}}.amazonAWS.com" ] } } } ] }

Permissões do IAM necessárias para usar uma chave gerenciada pelo cliente

Ao criar um recurso, como um armazenamento de dados com AWS KMS criptografia usando uma chave gerenciada pelo cliente, há permissões necessárias tanto para a política de chaves quanto para a política do IAM para o usuário ou a função do IAM.

Você pode usar a chave de ViaService condição kms: para limitar o uso da chave KMS somente às solicitações originadas de. HealthOmics

Para obter mais informações sobre políticas de chaves, consulte Habilitar políticas do IAM no Guia do desenvolvedor do AWS Key Management Service.

Permissões da API Analytics

Para HealthOmics análises, o usuário ou a função do IAM que cria as lojas deve ter as permissões kms:CreateGrant, kms:GenerateDataKey, kms: Decrypt e, além das kms: DescribeKey permissões necessárias. HealthOmics

Permissões da API de armazenamento

Para HealthOmics armazenamento APIs, o usuário ou a função do IAM que chama as seguintes operações de API exige as permissões listadas:

CreateReferenceStore, CreateSequenceStore

Para criar uma loja, o chamador do IAM deve ter kms:DescribeKey as permissões mais as HealthOmics permissões necessárias. O principal do HealthOmics serviço liga kms:GenerateDataKeyWithoutPlaintext para realizar verificações de validação de acesso para carregamento e acesso aos dados.

StartReadSetImportJob, StartReferenceImportJob

Para iniciar trabalhos de importação de dados, o chamador do IAM deve ter kms:Decrypt kms:GenerateDataKey permissões para a chave KMS na loja para a importação e kms:Decrypt permissões no bucket do Amazon S3 contendo os objetos a serem importados. Além disso, a função passada para a chamada deve ter kms:Decrypt permissões no bucket do Amazon S3 contendo os objetos a serem importados. O chamador do IAM também deve ter permissões para passar a função para o trabalho.

CreateMultipartReadSetUpload, UploadReadSetPart, CompleteMultipartReadSetUpload

Para concluir um upload de várias partes, o chamador do IAM deve ter kms:Decrypt e kms:GenerateDataKey criar, carregar e concluir o upload de várias partes.

StartReadSetExportJob

Para iniciar um trabalho de exportação de dados, o chamador do IAM deve ter kms:Decrypt permissão para que a chave KMS na loja exporte de kms:GenerateDataKey e kms:Decrypt para o bucket do Amazon S3 que recebe os objetos. Além disso, a função passada para a chamada deve ter kms:Decrypt permissões no bucket do Amazon S3 que recebe os objetos. O chamador do IAM também deve ter permissões para passar a função para o trabalho.

StartReadsetActivationJob

Para iniciar um trabalho de ativação do conjunto de leitura, o chamador do IAM deve ter kms:GenerateDataKey permissões kms:Decrypt e permissões para os objetos.

GetReference, GetReadSet

Para ler objetos da loja, o chamador do IAM precisa ter kms:Decrypt permissão para os objetos.

Conjunto de leitura S3 GetObject

Para ler objetos da loja usando a GetObject API do Amazon S3, o chamador do IAM deve ter kms:Decrypt permissão para os objetos. Defina essa permissão tanto para a chave gerenciada pelo cliente quanto para Chave pertencente à AWS as configurações.

Como HealthOmics usa subsídios no AWS KMS

HealthOmics O Analytics exige uma concessão para usar sua chave KMS gerenciada pelo cliente. Os subsídios não são necessários nem usados para HealthOmics fluxos de trabalho. HealthOmics O armazenamento usa a chave gerenciada pelo cliente diretamente do responsável pelo serviço, portanto, não use uma concessão. Quando você cria uma loja de análise criptografada com uma chave gerenciada pelo cliente, a HealthOmics análise cria uma concessão em seu nome enviando uma CreateGrantsolicitação para o AWS KMS. Os subsídios no AWS KMS são usados para dar HealthOmics acesso a uma chave do KMS em uma conta de cliente.

Não é recomendável revogar ou retirar os subsídios que o HealthOmics Analytics cria em seu nome. Se você revogar ou retirar a concessão que dá HealthOmics permissão para usar as chaves do AWS KMS em sua conta HealthOmics , não poderá acessar esses dados, criptografar novos recursos enviados para o armazenamento de dados ou descriptografá-los quando forem retirados.

Quando você revoga ou retira um subsídio HealthOmics, a alteração ocorre imediatamente. Para revogar os direitos de acesso, recomendamos que você exclua o armazenamento de dados em vez de revogar a concessão. Quando você exclui o armazenamento de dados, HealthOmics retira as concessões em seu nome.

Monitorando suas chaves de criptografia para AWS HealthOmics

Você pode usar CloudTrail para rastrear as solicitações AWS HealthOmics enviadas AWS KMS em seu nome ao usar uma chave gerenciada pelo cliente. As entradas de registro no CloudTrail registro mostram HealthOmics .amazonaws.com no campo UserAgent para distinguir claramente as solicitações feitas por. HealthOmics

Os exemplos a seguir são CloudTrail eventos para CreateGrant, GenerateDataKey, Decrypt e DescribeKey para monitorar AWS KMS operações chamadas por HealthOmics para acessar dados criptografados pela chave gerenciada pelo cliente.

O seguinte também mostra como usar CreateGrant para permitir que a HealthOmics análise acesse uma chave KMS fornecida pelo cliente, permitindo usar essa chave KMS HealthOmics para criptografar todos os dados do cliente em repouso.

Você não precisa criar seus próprios subsídios. HealthOmics cria uma concessão em seu nome enviando uma CreateGrant solicitação para o AWS KMS. As concessões AWS KMS são usadas para dar HealthOmics acesso a uma AWS KMS chave na conta do cliente.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "xx:test", "arn": "arn:AWS:sts::555555555555:assumed-role/user-admin/test", "accountId": "xx", "accessKeyId": "xxx", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "xxxx", "arn": "arn:AWS:iam::555555555555:role/user-admin", "accountId": "555555555555", "userName": "user-admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-11-11T01:36:17Z", "mfaAuthenticated": "false" } }, "invokedBy": "apigateway.amazonAWS.com" }, "eventTime": "2022-11-11T02:34:41Z", "eventSource": "kms.amazonAWS.com", "eventName": "CreateGrant", "AWSRegion": "us-west-2", "sourceIPAddress": "apigateway.amazonAWS.com", "userAgent": "apigateway.amazonAWS.com", "requestParameters": { "granteePrincipal": "AWS Internal", "keyId": "arn:AWS:kms:us-west-2:555555555555:key/a6e87d77-cc3e-4a98-a354-e4c275d775ef", "operations": [ "CreateGrant", "RetireGrant", "Decrypt", "GenerateDataKey" ] }, "responseElements": { "grantId": "4869b81e0e1db234342842af9f5531d692a76edaff03e94f4645d493f4620ed7", "keyId": "arn:AWS:kms:us-west-2:245126421963:key/xx-cc3e-4a98-a354-e4c275d775ef" }, "requestID": "d31d23d6-b6ce-41b3-bbca-6e0757f7c59a", "eventID": "3a746636-20ef-426b-861f-e77efc56e23c", "readOnly": false, "resources": [ { "accountId": "245126421963", "type": "AWS::KMS::Key", "ARN": "arn:AWS:kms:us-west-2:245126421963:key/xx-cc3e-4a98-a354-e4c275d775ef" } ], "eventType": "AWSApiCall", "managementEvent": true, "recipientAccountId": "245126421963", "eventCategory": "Management" }

O exemplo a seguir mostra como usar GenerateDataKey para garantir que o usuário tenha as permissões necessárias para criptografar dados antes de armazená-los.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEUSER", "arn": "arn:AWS:sts::111122223333:assumed-role/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:AWS:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-06-30T21:17:06Z", "mfaAuthenticated": "false" } }, "invokedBy": "omics.amazonAWS.com" }, "eventTime": "2021-06-30T21:17:37Z", "eventSource": "kms.amazonAWS.com", "eventName": "GenerateDataKey", "AWSRegion": "us-east-1", "sourceIPAddress": "omics.amazonAWS.com", "userAgent": "omics.amazonAWS.com", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:AWS:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" }, "responseElements": null, "requestID": "EXAMPLE_ID_01", "eventID": "EXAMPLE_ID_02", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:AWS:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AWSApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

Saiba mais

Os recursos a seguir fornecem mais informações sobre a criptografia de dados em repouso.

Para obter mais informações sobre os conceitos básicos do AWS Key Management Service, consulte a AWS KMS documentação.

Para obter mais informações sobre as melhores práticas de segurança na AWS KMS documentação.

Criptografia em trânsito

AWS HealthOmics usa o TLS 1.2+ para criptografar dados em trânsito pelos endpoints públicos e por meio de serviços de back-end.