Class: Awful::Kms
  
  
  
  
    
      Constant Summary
      collapse
    
    
      
        - COLORS =
          
        
 
        {
  Enabled:         :green,
  PendingDeletion: :red,
} 
      
    
  
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  Methods inherited from Cli
  #initialize, #ll, #version
  
  Constructor Details
  
    This class inherits a constructor from Awful::Cli
  
 
  
    Instance Method Details
    
      
  
  
    
      
118
119
120
121
122
123
124
125
126 
     | 
    
      # File 'lib/awful/kms.rb', line 118
def aliases
  list_aliases.output do |list|
    if options[:long]
      print_table list.map { |a| [a.alias_name, a.target_key_id, a.alias_arn] }
    else
      puts list.map(&:alias_name)
    end
  end
end
     | 
  
 
    
      
  
  
    #decrypt(data)  ⇒ Object 
  
  
  
  
    
      
88
89
90
91 
     | 
    
      # File 'lib/awful/kms.rb', line 88
def decrypt(data)
  key = Base64.decode64(data)
  puts kms.decrypt(ciphertext_blob: key)
end 
     | 
  
 
    
      
  
  
    #encrypt(id, data)  ⇒ Object 
  
  
  
  
    
      
82
83
84
85 
     | 
    
      # File 'lib/awful/kms.rb', line 82
def encrypt(id, data)
  blob = kms.encrypt(key_id: id, plaintext: data).ciphertext_blob
  puts Base64.encode64(blob)
end 
     | 
  
 
    
      
  
  
    
      
67
68
69
70
71 
     | 
    
      # File 'lib/awful/kms.rb', line 67
def get(id)
  kms.describe_key(key_id: id_or_alias(id)).key_metadata.output do |key|
    puts YAML.dump(stringify_keys(key.to_hash))
  end
end
     | 
  
 
    
      
  
  
    
      
129
130
131 
     | 
    
      # File 'lib/awful/kms.rb', line 129
def id(name)
  alias_by_name(name).output(&method(:puts))
end 
     | 
  
 
    
      
  
  
    
      
51
52
53
54
55
56
57
58
59
60
61
62
63
64 
     | 
    
      # File 'lib/awful/kms.rb', line 51
def ls
  paginate(:keys) do |marker|
    kms.list_keys(marker: marker)
  end.output do |keys|
    if options[:long]
      print_table keys.map { |k|
        key = kms.describe_key(key_id: k.key_id).key_metadata
        [ aliases_hash.fetch(k.key_id, '-'), k.key_id, color(key.key_state), key.creation_date ]
      }.sort
    else
      puts keys.map(&:key_id)
    end
  end
end
     | 
  
 
    
      
  
  
    #policy(id)  ⇒ Object 
  
  
  
  
    
      
75
76
77
78
79 
     | 
    
      # File 'lib/awful/kms.rb', line 75
def policy(id)
  kms.get_key_policy(key_id: id_or_alias(id), policy_name: options[:name]).policy.output do |policy|
    puts policy
  end
end
     | 
  
 
    
      
  
  
    #tag(id, *tags)  ⇒ Object 
  
  
  
  
    
      
94
95
96
97
98
99
100
101
102 
     | 
    
      # File 'lib/awful/kms.rb', line 94
def tag(id, *tags)
  kms.tag_resource(
      key_id: id_or_alias(id),
      tags: tags.map do |tag|
        k,v = tag.split(/[:=]/)
        {tag_key: k, tag_value: v}
      end
    )
end
     | 
  
 
    
      
  
  
    
      
105
106
107
108
109
110
111
112
113
114 
     | 
    
      # File 'lib/awful/kms.rb', line 105
def tags(id)
  paginate(:tags) do |marker|
    kms.list_resource_tags(
      key_id: id_or_alias(id),
      next_marker: marker,
    )
  end.output do |tags|
    print_table tags.map(&:to_a)
  end
end
     |